62,046
社区成员
发帖
与我相关
我的任务
分享
GridViewRow gvr = (GridViewRow)((CheckBox)sender).Parent.Parent;
string code = gvr.Cells[1].Text.ToString();
<form id="form1" runat="server">
<div>
<table>
<asp:DataList ID="DataList1" runat="server" Width="100%" OnItemDataBound="DataList1_ItemDataBound">
<ItemTemplate>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</td>
<td>
<asp:GridView ID="gridUser" runat="server" Width="100%" AutoGenerateColumns="False"
Font-Size="12px" ForeColor="#333333" BorderColor="#5AAFF4" ShowHeader="False">
<Columns>
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="Cb1" runat="server" AutoPostBack="true" Text='<%#Eval("Id") %>' OnCheckedChanged="OnCheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:DataList>
</table>
</div>
</form>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var list = new[] {
new{Id="1号",Name="一号"},
new{Id="2号",Name="二号"},
new{Id="3号",Name="三号"},
new{Id="4号",Name="四号"}
}.ToList();
DataList1.DataSource = list;
DataList1.DataBind();
}
}
protected void OnCheckedChanged(object sender, EventArgs e)
{
GridViewRow gvr = ((CheckBox)sender).NamingContainer as GridViewRow;
string name = ((CheckBox)sender).Text;
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.Separator || e.Item.ItemType == ListItemType.AlternatingItem)
{
var list = new[] {
new{Id="1号",Name="1号"},
new{Id="2号",Name="2号"},
new{Id="3号",Name="3号"},
new{Id="4号",Name="4号"}
}.ToList();
GridView gv = e.Item.FindControl("gridUser") as GridView;
gv.DataSource = list;
gv.DataBind();
}
}
<asp:DataList ID="DataList1" runat="server" Width="100%"
onitemdatabound="DataList1_ItemDataBound"
onitemcommand="DataList1_ItemCommand">
<ItemTemplate>
<table class="style2">
<tr>
<td class="style3">
<asp:Label ID="Label1" runat="server" Text='<%# Eval("WName") %>'
Visible="False"></asp:Label>
</td>
<td align="left">
<asp:GridView ID="gridUser" runat="server" Width="100%" AutoGenerateColumns="False" Font-Size="12px" ForeColor="#333333" OnRowDataBound="gridUser_RowDataBound" BorderColor="#5AAFF4" onrowcommand="gridUser_RowCommand" ShowHeader="False" >
<Columns>
<asp:TemplateField HeaderText="选择" >
<ItemTemplate>
<asp:CheckBox ID="Cb1" runat="server" oncheckedchanged="Cb1_CheckedChanged" AutoPostBack="true" CommandName="lbtn" Text='<%# Eval("id") %>' /> <%--AutoPostBack="True" --%>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="2%" />
<HeaderStyle HorizontalAlign="Left" Width="2%" />
</asp:TemplateField>
<asp:BoundField DataField="dj" HeaderText="dj">
<HeaderStyle HorizontalAlign="Left" Width="98%" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
</Columns>
<FooterStyle BackColor="#5AAFF4" Font-Bold="True" BorderColor="#CCCCCC" />
<RowStyle BackColor="#EFF3FB" BorderColor="#CCCCCC" />
<EditRowStyle BackColor="#2461BF" BorderColor="#CCCCCC" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5AAFF4" Font-Bold="True" ForeColor="White" BorderColor="#CCCCCC" />
<AlternatingRowStyle BackColor="White" />
<EmptyDataRowStyle BackColor="#5AAFF4" BorderColor="#CCCCCC" />
</asp:GridView>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
protected void Cb1_CheckedChanged(object sender, EventArgs e)
{
string ss = "";
foreach (DataListItem di in DataList1.Items)
{
CheckBox cb = new CheckBox();
GridView dv = (GridView)di.FindControl("gridUser");
//for (int i = 0; i < ds.Items.Count;i++ )
if (getCheckvalue(dv, "") != "")
{
if (ss == "")
{
ss = getCheckvalue(dv, "");
}
else
{
ss = ss + "," + getCheckvalue(dv, "");
}
}
}
ss = ss.Replace("'", "");
TextBox1.Text = ss;
}
绑定的我就不写了 关键是Cb1_CheckedChanged这个方法无法取到点击CheckBox的那个值