【问题标题】:GridView edit mode without objectdatasource没有objectdatasource的GridView编辑模式
【发布时间】:2010-08-27 11:22:03
【问题描述】:

是否可以在不使用对象数据源的情况下强制网格视图编辑模式,我设置了 EditIndex,但在我将绑定更改为 ObjectDataSource 之前,永远不会显示编辑模板

谢谢

【问题讨论】:

    标签: asp.net data-binding


    【解决方案1】:

    我不知道你是不是指这样一个例子,但我希望它会有所帮助:

    <asp:GridView ID="GridView1" runat="server" OnRowEditing="GridView1_RowEditing" 
        OnRowUpdating="GridView1_RowUpdating" 
        onrowcancelingedit="GridView1_RowCancelingEdit">
        <Columns>
            <asp:CommandField EditText="Edit" UpdateText="Update" ShowEditButton="true" />
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Label ID="lbl" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txt" runat="server" Text='<%# Eval("Name") %>'></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    

    代码背后:

    public partial class _Default : System.Web.UI.Page
    {
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridView1.DataSource = ItemRepo.GetItemList();
                GridView1.DataBind();
            }
        }
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            GridView1.DataSource = ItemRepo.GetItemList();
            GridView1.DataBind();
        }
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridView1.EditIndex = -1;
            GridView1.DataSource = ItemRepo.GetItemList();
            GridView1.DataBind();
        }
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            GridView1.DataSource = ItemRepo.GetItemList();
            GridView1.DataBind();
        }
    }
    
    class Item
    {
        public string Name { get; set; }
    }
    class ItemRepo
    {
        public static List<Item> GetItemList()
        {
            List<Item> list = new List<Item>();
            list.Add(new Item() { Name = "Item1" });
            list.Add(new Item() { Name = "Item2" });
            list.Add(new Item() { Name = "Item3" });
            list.Add(new Item() { Name = "Item4" });
            list.Add(new Item() { Name = "Item5" });
            return list;
        }
    }
    

    我认为您的问题可能是设置editindex后无法对gridview进行数据绑定。

    【讨论】:

      【解决方案2】:

      您的意思是设置Edit-Mode as default?因为你必须对你的 gridview 进行数据绑定,否则没有要显示的项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-16
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多