很急,在線等!如何在DataGrid中動態創建CheckBoxList(數據庫中加載數據)並記錄它的選中狀態,最好有完整例子,100分相送 如何在DataGrid中動態創建CheckBoxList(數據庫中加載數據)並記錄它的選中狀態,最好有完整例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去这看看http://topic.csdn.net/u/20070822/11/f4ed11fc-2828-49f2-8e09-fc846180b426.html 我貼下代碼:前台:<asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="UserID" OnItemCommand="DataGrid1_ItemCommand" OnItemCreated="DataGrid1_ItemCreated" onitemdatabound="FormatDataGrid1_ItemDataBound" > <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center" VerticalAlign="Middle" /> <Columns> <asp:TemplateColumn HeaderText="用戶名稱"> <ItemTemplate> <asp:HiddenField ID="hidUserID" runat="server" Value='<%# Eval("UserID") %>' /> <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserName") %>'></asp:Label> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="模塊名稱"> <ItemTemplate> <asp:DropDownList ID="DDListRightListName" runat="server" > </asp:DropDownList> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="權限名稱"> <ItemTemplate> <asp:CheckBoxList ID="chkRightFlag" runat="server" RepeatDirection="Horizontal"></asp:CheckBoxList> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid>CS頁面:protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGrid(); } } public void BindGrid() { DataSet ds = new DataSet(); this.DataGrid1.DataSource = ds.Tables["userTB"]; this.DataGrid1.DataBind(); string str1 = "select RightListID,RightListName from RightList"; string str2 = "select RightFlagID,RightFlagName from RightFlagInfo"; SqlDataReader dr1 = userBLL.GetDataReader(str1); SqlDataReader dr2 = userBLL.GetDataReader(str2); DropDownList ddlist; CheckBoxList chklist; while (dr1.Read() && dr2.Read()) { for (int i = 0; i < this.DataGrid1.Items.Count; i++) { ddlist = (DropDownList)this.DataGrid1.Items[i].Cells[1].Controls[1]; ddlist.Items.Add(new ListItem(dr1[1].ToString(), dr1[0].ToString())); chklist = (CheckBoxList)this.DataGrid1.Items[i].Cells[2].Controls[1]; chklist.Items.Add(new ListItem(dr2[1].ToString(), dr2[0].ToString())); ddlist.DataBind(); chklist.DataBind(); } } dr1.Close(); dr2.Close();}用這種方式創建的checkboxlist每行記錄隻能選中一個項,其它選中的項取不到值,鬱悶死了!大家幫幫忙 我是想在datagrid中用checkboxlist加載權限項,記錄值後點button存到數據庫中,但是每行的checkboxlist隻能取到一個選中的記錄 你是要让dropdown设置成多选?那你用listbox就好了 我是要讓checkboxlist多選並取到值,我現在隻能取到一個值 沒有datagrid就好辦,放到datagrid裡就不好取值了 <ItemTemplate> <asp:CheckBoxList DataSource='<%# GetDs(DataBinder.Eval(Container, "DataItem.RightFlagID"),DataBinder.Eval(Container, "DataItem.RightFlagName")) %>' DataTextField="RightFlagName" DataValueField="RightFlagID" ID="ChkRightFlagName" runat="server"></asp:CheckBoxList> </ItemTemplate>這種方式如何在後台CS裡獲得數據源?這種方式怎麼來寫代碼? <ItemTemplate> <asp:CheckBoxList DataSource=' <%# GetDs() %>' DataTextField="RightFlagName" DataValueField="RightFlagID" ID="ChkRightFlagName" runat="server"> </asp:CheckBoxList> </ItemTemplate>这种方式取到的值还是只有一个,晕死了.....高手帮忙啊而且是这样取到值的:第一行:1 2 3 4 5 6 7 8 9 取到:1(多选只能取到1)第二行:1 2 3 4 5 6 7 8 9 取到:2(多选只能取到2)第三行:1 2 3 4 5 6 7 8 9 取到:3(多选只能取到3)第四行:1 2 3 4 5 6 7 8 9 取到:4(多选只能取到4)第五行:1 2 3 4 5 6 7 8 9 取到:5(多选只能取到5)第六行:1 2 3 4 5 6 7 8 9 取到:6(多选只能取到6) TreeView问题 求好的想法? 高手来 winform数据分条查询 得分好题 [c#]excel(沒有其他新字型可套用到這個活頁簿中) 按钮的快捷键如何设置? c#可以做出来像qq这样的软件吗? 有一个字符串,如“VisuwlStudioNet”,有一个什么方法,可以把大写的字母找出来 “未将对象引用设置到对象的实例”, 急!不知道有多少列,如何取出表中的所有数据? 我.NET程序里的LC.EXE文件无法运行!!!! 求msn客户端发信息 用C#做网站后台管理的问题
前台:
<asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="UserID" OnItemCommand="DataGrid1_ItemCommand" OnItemCreated="DataGrid1_ItemCreated" onitemdatabound="FormatDataGrid1_ItemDataBound" >
<ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center"
VerticalAlign="Middle" />
<Columns>
<asp:TemplateColumn HeaderText="用戶名稱">
<ItemTemplate>
<asp:HiddenField ID="hidUserID" runat="server" Value='<%# Eval("UserID") %>' />
<asp:Label ID="Label1" runat="server"
Text='<%# DataBinder.Eval(Container, "DataItem.UserName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="模塊名稱">
<ItemTemplate>
<asp:DropDownList ID="DDListRightListName" runat="server" >
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="權限名稱">
<ItemTemplate>
<asp:CheckBoxList ID="chkRightFlag" runat="server" RepeatDirection="Horizontal"></asp:CheckBoxList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
CS頁面:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid(); } } public void BindGrid()
{
DataSet ds = new DataSet();
this.DataGrid1.DataSource = ds.Tables["userTB"]; this.DataGrid1.DataBind(); string str1 = "select RightListID,RightListName from RightList";
string str2 = "select RightFlagID,RightFlagName from RightFlagInfo";
SqlDataReader dr1 = userBLL.GetDataReader(str1);
SqlDataReader dr2 = userBLL.GetDataReader(str2);
DropDownList ddlist;
CheckBoxList chklist;
while (dr1.Read() && dr2.Read())
{ for (int i = 0; i < this.DataGrid1.Items.Count; i++)
{
ddlist = (DropDownList)this.DataGrid1.Items[i].Cells[1].Controls[1];
ddlist.Items.Add(new ListItem(dr1[1].ToString(), dr1[0].ToString()));
chklist = (CheckBoxList)this.DataGrid1.Items[i].Cells[2].Controls[1];
chklist.Items.Add(new ListItem(dr2[1].ToString(), dr2[0].ToString()));
ddlist.DataBind();
chklist.DataBind();
} }
dr1.Close();
dr2.Close();
}
用這種方式創建的checkboxlist每行記錄隻能選中一個項,其它選中的項取不到值,鬱悶死了!大家幫幫忙
<asp:CheckBoxList DataSource='<%# GetDs(DataBinder.Eval(Container, "DataItem.RightFlagID"),DataBinder.Eval(Container, "DataItem.RightFlagName")) %>' DataTextField="RightFlagName" DataValueField="RightFlagID" ID="ChkRightFlagName" runat="server"></asp:CheckBoxList>
</ItemTemplate>
這種方式如何在後台CS裡獲得數據源?這種方式怎麼來寫代碼?
<asp:CheckBoxList DataSource=' <%# GetDs() %>' DataTextField="RightFlagName" DataValueField="RightFlagID" ID="ChkRightFlagName" runat="server"> </asp:CheckBoxList>
</ItemTemplate>这种方式取到的值还是只有一个,晕死了.....高手帮忙啊
而且是这样取到值的:
第一行:1 2 3 4 5 6 7 8 9 取到:1(多选只能取到1)
第二行:1 2 3 4 5 6 7 8 9 取到:2(多选只能取到2)
第三行:1 2 3 4 5 6 7 8 9 取到:3(多选只能取到3)
第四行:1 2 3 4 5 6 7 8 9 取到:4(多选只能取到4)
第五行:1 2 3 4 5 6 7 8 9 取到:5(多选只能取到5)
第六行:1 2 3 4 5 6 7 8 9 取到:6(多选只能取到6)