2012-07-20 149 views
0

我的数据列表项工作的编辑理念,我觉得我做了所有的代码正确的,但如果点击编辑按钮空白页面上展示,请参阅这个问题,并发出任何错误和拯救建议,请datalist编辑不起作用?

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> 

回答

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失去了它的数据源,并再次需要它。

+0

您调用未定义的方法。 – 2015-09-16 08:31:53