其实我一向很少用关于"list"的控件,因为有DataGrid就基本上都搞定了,然而一方面是为了学习,另一方面也可以灵活的应用更多的控件,于是采用了其中的几个控件,但没想到结果令我大失所望。。。。 先看看DataList控件,它的使用最郁闷的是不能在IDE环境里绑定数据,而只能用模板(不知道是不是我没学会)。 <asp:DataList id="DataList1" runat="server" Width="100%" Visible="False" CssClass="s_verdana" RepeatDirection="Horizontal" ForeColor="Black" BorderColor="#999999" BorderStyle="Solid" BackColor="Silver" CellPadding="1" GridLines="Vertical" BorderWidth="1px" RepeatColumns="4" DataKeyField="c_id"> <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#000099"></SelectedItemStyle> <AlternatingItemStyle BackColor="#CCCCCC"></AlternatingItemStyle> <ItemTemplate> <asp:CheckBox Runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.c_loginName")%>'> </asp:CheckBox> </ItemTemplate> 数据绑定: this.DataList1.DataSource = m_table.DefaultView; this.DataList1.DataKeyField = "c_id"; this.DataList1.DataBind(); 看上去和DataGrid一样不是吗?可问题是:这里我这里使用了CheckBox,也就是说用户到时候要选择其中的部份数据,然后提交回来,结果是:你很难得在DataGrid里取回绑定的数据列。。。。。 再看RadioButtonList: <asp:RadioButtonList id="RadioButtonList_MsgType" runat="server" Width="440px" RepeatDirection="Horizontal" CssClass="s_verdana"> <asp:ListItem Value="0" Selected="True">All</asp:ListItem> <asp:ListItem Value="1">All Client</asp:ListItem> <asp:ListItem Value="2">All Users</asp:ListItem> <asp:ListItem Value="3">Sperical</asp:ListItem> </asp:RadioButtonList> 这里我只使用了静态的数据,因为这里并没有很多的数据显示。但有一点小问题:我想在上面加一个JavaScript事件,用来响应用户操作,于是我在后台添加代码: private void RadioButtonList_MsgType_Load(object sender, System.EventArgs e) } 让我郁闷不以的是:::它并没有在radio添加Onclick事件,查看HTML源代码,差点没把我气死:原来它生成了一个Table,而这个RadioButtonList就是这个Table,而里面的Radio就是行与列了。 <table >> 这也算了,如果非要这样用也行,可以在它的子控件里再添加事件,这样可是麻烦多了。看看CheckBoxList,原理也一样,也就不多说了。 回到DataList上来,看它如果用CheckBox来取回数据吧,先把所有的子控件都列出来: private void AddMessageRelations() } 看看结果: 好了,清楚是怎么回事了就好办了。以下代码取得用户选定CheckBox的ID值。 private void AddMessageRelations() } 相关文章: 2022-02-26 2021-06-01 2022-02-11 2021-12-02 2022-01-20 2021-10-02 2022-12-23 2022-12-23