当前位置:首页 > Datalist控件
其中ViewState对状态信息的读取和下面的保存联系后再讨论; 下面以内层DataList的Edit事件为例; privatevoid dlItem_ItemCommand(object source, DataListCommandEventArgs e) { if ( e.CommandName == \{ int qid = 0; //得到外层datalist DataList dllist =(DataList)e.Item.Parent.Parent.Parent; //取得外层Question记录的Id HtmlInputHidden lbEditNum =(HtmlInputHidden)dllist.Items[0].FindControl(\if ( lbEditNum.Value != \{ qid = int.Parse(lbEditNum.Value); } //得到内层DataList DataList dl = (DataList)e.Item.Parent; dl.EditItemIndex = e.Item.ItemIndex; //保存状态信息 ViewState[\// Response.Write(e.Item.ItemIndex); //重新绑定内层DataList数据 ArrayList al = InvController.GetItemCollection( qid ); dl.DataSource = al; dl.DataBind();}} 在内层DataList中e.CommandName=\事件中必须保存ViewState[\e.Item.Index信息;否则在e.CommandName=\中得不到editIndex的信息.需要保存ViewState的原因是:由于暂时没有找到更好的方法,内层DataList数据绑定需要在每个事件发生时对外层DataList重新绑定,也就是在Page.Load中加载DataBind()事件,对效率有一定影响 两层DataList的嵌套
前台代码: XML/HTML code
Text='<%#DataBinder.Eval(Container.DataItem, \TextMode=\ DataSource='<%#((System.Data.DataRowView)Container.DataItem).Row.GetChildRows(\ 后台CS: C# code protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { GetDataList(); } } private void GetDataList() { DataSet ds = new DataSet(); ds = DbHelperSQL.RunProcedure(\ ds.Relations.Add(\ds.Tables[1].Columns[\ DataList1.DataSource = ds.Tables[0].DefaultView; // DataList2.DataSource = ds.Tables[1].DefaultView; DataList1.DataBind(); // DataList2.DataBind(); } //DataList编辑 protected void DataList1_EditCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = e.Item.ItemIndex; GetDataList(); } //DataList取消 protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = -1; GetDataList(); } //DataList更新 protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e) { string au_id = DataList1.DataKeys[e.Item.ItemIndex].ToString(); string name = ((TextBox)e.Item.FindControl(\ // string au_lname = ((TextBox)e.Item.FindControl(\ Response.Write(\更新时: DataList1.EditItemIndex = -1; GetDataList(); } //DataList删除 protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) { string au_id = DataList1.DataKeys[e.Item.ItemIndex].ToString(); string au_lname = ((Label)e.Item.FindControl(\ Response.Write(\删除时: GetDataList(); } protected void DataList2_EditCommand(object sender, DataListCommandEventArgs e) { DataList itemList = (DataList)sender; //DataList2.EditItemIndex = e.Item.ItemIndex; 共分享92篇相关文档 <%#Eval(\
au_id: \ \name);
au_id: \ \au_lname);
本文作者:...
其中ViewState对状态信息的读取和下面的保存联系后再讨论; 下面以内层DataList的Edit事件为例; privatevoid dlItem_ItemCommand(object source, DataListCommandEventArgs e) { if ( e.CommandName == \{ int qid = 0; //得到外层datalist DataList dllist =(DataList)e.Item.Parent.Parent.Parent; //取得外层Question记录的Id HtmlInputHidden lbEditNum =(HtmlInputHidden)dllist.Items[0].FindControl(\if ( lbEditNum.Value != \{ qid = int.Parse(lbEditNum.Val
相关文档
相关推荐