The name 'xxx' does not exist in the current context 錯誤解決方法之一
阿新 • • 發佈:2019-01-10
巢狀在內層的asp:datalist或者其他控制元件是無法直接被code behind呼叫的,應該現在外層的datalist加事件onitemdatabound事件處理函式,使用方法如下
aspx檔案:
asxp.cs檔案:(在事件處理函式中加入內層DataList資料邦定)<asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_DataBinding"> <ItemTemplate> <asp:Label runat="server" ID="L" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>'></asp:Label> <%#DataBinder.Eval(Container.DataItem,"name") %> <br /> <asp:DataList runat="server" ID="DataList2"> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem,"boardtype") %> <br /> </ItemTemplate> </asp:DataList> </ItemTemplate> </asp:DataList>
protected void Page_Load(object sender, EventArgs e) { SQL sql = new SQL("select * from bigsorts"); SqlDataAdapter sda = sql.GetSqlDataAdapter(); DataSet ds = new DataSet(); sda.Fill(ds,"table1"); DataList1.DataSource = ds; DataList1.DataBind(); sql.CloseConn(); Response.Write(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()); } protected void DataList1_DataBinding(object sender, DataListItemEventArgs e) { DataList dl = (DataList)e.Item.FindControl("DataList2"); Label l = (Label)e.Item.FindControl("L"); SQL sql = new SQL("select * from tblsorts where parentid=" + l.Text); SqlDataAdapter sda = sql.GetSqlDataAdapter(); DataSet ds = new DataSet(); sda.Fill(ds, "table"); dl.DataSource = ds; dl.DataBind(); }