【问题标题】:datalist editing is not working?数据列表编辑不起作用?
【发布时间】:2012-07-20 11:01:12
【问题描述】:

我正在研究数据列表项编辑概念,我认为我已完成所有代码正确但当单击编辑按钮时显示空白页面请查看此问题并发送任何错误和拯救建议

HTML 代码

    <asp:DataList ID="DataList1" runat="server" DataKeyField="outlet_id" OnEditCommand="DataList1_EditCommand" OnCancelCommand="DataList1_CancelCommand" RepeatColumns="2"> 
        <ItemTemplate>
        <asp:Label ID="Label1" runat="server" Text='<%#Eval("outlet_id") %>' ></asp:Label>
            <asp:Label ID="lbl" runat="server" Text='<%#Eval("company_name") %>' ></asp:Label>
            <asp:Button ID="edit" runat="server" Text="Edit" CommandName="edit"  />
            <asp:Button ID="delete" runat="server" Text="Del" CommandName="del" />
        </ItemTemplate>
        <EditItemTemplate>
        id<asp:TextBox ID="id" runat="server" Text='<%#Eval("outlet_id") %>'></asp:TextBox> 
        name<asp:TextBox ID="name" runat="server" Text='<%#Eval("company_name") %>'  ></asp:TextBox>
            <asp:Button ID="Button2" runat="server" CommandName="update" Text="update" />
            <asp:Button ID="Button3" runat="server" CommandName="cancel" Text="Cancel" />
        </EditItemTemplate>
    </asp:DataList>


    </form>
</body>

下面是c#代码

页面加载

  protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        bind();
    }

}

编辑命令代码

protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = e.Item.ItemIndex;
        DataList1.DataBind();

    }

取消命令代码

protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
    DataList1.EditItemIndex = -1;
    DataList1.DataBind();
}

这是数据列表绑定

protected void bind()
{
    SqlConnection con = new SqlConnection(strconnection);
    con.Open();
    string qry = "select top 10 outlet_id,company_name from outlet_table ";
    SqlDataAdapter Da = new SqlDataAdapter(qry, con);
    DataSet ds = new DataSet();
    Da.Fill(ds, "outlet");
    DataList1.DataSource = ds;
    DataList1.DataBind();
}

这是点击编辑按钮后显示的客户端 html 数据

<body>
<form name="form1" method="post" action="Demo.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="zVlNF4jkNpf9ZmIBtYaHSdSPa9l8zKVA4H0JXxnhqVytzfrbVWUuOuY8004hXYRY8KuBKqPKgV3kS4RQBegrJQ5LErL3VdV9TeluNoxAZLtDu0/62xR8Ij/jD638pPKb">
</div>

<div>

    <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="">
</div>





    </form>


</body>

【问题讨论】:

    标签: asp.net datalist


    【解决方案1】:

    您需要将数据重新绑定到 Datalist。

    这个:

    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;
            DataList1.DataBind();
    
        }
    

    应该是这样的:

    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;
            bind();
    
        }
    

    在回发时,Datalist 会丢失其数据源并再次需要它。

    【讨论】:

    • 你调用了一个未定义的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2023-03-05
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2023-03-25
    • 2017-12-20
    相关资源
    最近更新 更多