none
用代码新增一个SPField到List和视图中,为何在列表页面中没出现?[ RRS feed

  • 问题

  • 我用代码新增一个SPField到list和视图后,新增栏出现在了列表和视图里,但在列表页面中没出现.
    通过查看视图发现新增栏前面的复选框没勾上,手动勾上就可以在列表页面出现. 可我想用代码的方式在新增SPField的时候就把它勾上,但不知道哪个API可以用实现这个功能,MSDN上找了很久都没找上.
    哪位能告诉我是哪个API?

    SPField field = orderList.Fields.CreateNewField(SPFieldType.Text.ToString(), "OrderID");//orderList已经获取到了
                        field.ShowInDisplayForm = true;
                        field.ShowInViewForms = true;
                        field.ShowInNewForm = true;
                        field.ShowInEditForm = true;
                        field.ShowInListSettings = true;
                        field.Hidden = false;
                    
                        orderList.Fields.Add(field);
                        orderList.DefaultView.ViewFields.Add("OrderID");
    
                        orderList.DefaultView.Update();
                        orderList.Update();

    2012年9月6日 2:21

答案

  • 你好 Dic4000,

    请使用下面这段代码试试看是否可行:
    SPField field = orderList.Fields.CreateNewField(SPFieldType.Text.ToString(), "OrderID");//orderList已经获取到了
                        field.ShowInDisplayForm = true;
                        field.ShowInViewForms = true;
                        field.ShowInNewForm = true;
                        field.ShowInEditForm = true;
                        field.ShowInListSettings = true;
                        field.Hidden = false;
                    
                        orderList.Fields.Add(field);
                            SPView defaultView = orderList.Views["All Items"];
                            defaultView.ViewFields.Add(OrderID);
                            defaultView.Update();
                        orderList.Update();

    谢谢,


    2012年9月12日 4:01
    版主

全部回复

  • 你好 Dic4000,

    请使用下面这段代码试试看是否可行:
    SPField field = orderList.Fields.CreateNewField(SPFieldType.Text.ToString(), "OrderID");//orderList已经获取到了
                        field.ShowInDisplayForm = true;
                        field.ShowInViewForms = true;
                        field.ShowInNewForm = true;
                        field.ShowInEditForm = true;
                        field.ShowInListSettings = true;
                        field.Hidden = false;
                    
                        orderList.Fields.Add(field);
                            SPView defaultView = orderList.Views["All Items"];
                            defaultView.ViewFields.Add(OrderID);
                            defaultView.Update();
                        orderList.Update();

    谢谢,


    2012年9月12日 4:01
    版主
  • 虽然已经知道了原因,但还是非常感谢你的回复.
    2012年9月12日 6:30