急急急,一个关于datagrid中复选框问题。
在datagrid中有个复选框,我想点击这个复选框就能取得这个复选框所对应的这个记录的ID,该如何写
private void ButEdit_Click(object sender, System.EventArgs e)
{
System.Web.UI.WebControls.CheckBox chk1;
int all=this.DataGrid1.Items.Count;
for(int i=0;i<all;i++)
{
chk1=(CheckBox)this.DataGrid1.Items[i].FindControl("chk1");
if(chk1.Checked==true)
{
System.Web.UI.WebControls.DataGridItemEventArgs e1;
ID=this.DataGrid1.DataKeys[e1.Item.ItemIndex].ToString();
}
}
}这样写提示错误e1没有赋值
问题点数:20、回复次数:4Top
1 楼sj396859033()回复于 2005-11-28 14:13:45 得分 20
private void Button1_Click(object sender, System.EventArgs e)
{
VoteSystem.NewsClass checkoutDB = new VoteSystem.NewsClass();
Label1.Text=User.Identity.Name;
String usernu = User.Identity.Name;
for (int i=0; i < MyList.Items.Count; i++)
{
CheckBox remove = (CheckBox) MyList.Items[i].FindControl("Remove");
if (remove.Checked == true)
{
Label lblProductID = (Label) MyList.Items[i].FindControl("NewsId");
string strconn= ConfigurationSettings.AppSettings["vote"];
//连接本地计算机的WMS数据库
SqlConnection cn= new SqlConnection (strconn);
cn.Open ();
SqlCommand cmd = new SqlCommand ("insert into VoteDetail(VNewsId,VoterId) values('"+lblProductID.Text+"','"+Label1.Text+"')",cn);
cmd.ExecuteNonQuery();
}
}
BindGrid();
}
<asp:DataGrid id=MyList runat="server" Font-Size="14px" Width="100%" BorderColor="#CCCCCC" cellpadding="3" Font-Name="Verdana" AutoGenerateColumns="False" BorderStyle="None" BorderWidth="1px" BackColor="White" ShowFooter="True">
<SelectedItemStyle Font-Bold="True" ForeColor="White" Font-Names="Verdana" BackColor="#669999"></SelectedItemStyle>
<ItemStyle ForeColor="#000066"></ItemStyle>
<HeaderStyle Font-Size="Medium" Font-Bold="True" ForeColor="White" BackColor="#006699"></HeaderStyle>
<FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
<Columns> <asp:TemplateColumn HeaderText="编号" HeaderStyle-HorizontalAlign=Center> <ItemTemplate>
<asp:Label id="NewsId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NewsID") %>' />
</ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="NewsTitle" HeaderText="标 题" HeaderStyle-HorizontalAlign=Center></asp:BoundColumn>
<asp:BoundColumn DataField="NewsDep" HeaderText="发布部门" HeaderStyle-HorizontalAlign=Center></asp:BoundColumn>
<asp:TemplateColumn HeaderText="选择" ItemStyle-Width="35px" HeaderStyle-HorizontalAlign=Center>
<ItemTemplate>
<center>
<asp:CheckBox id="Remove" runat="server" />
</center>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>Top
2 楼sj396859033()回复于 2005-11-28 14:14:43 得分 0
照着上面的做应该没有错Top
3 楼sportboy51()回复于 2005-11-28 14:28:03 得分 0
这么复杂的阿,Top
4 楼sj396859033()回复于 2005-11-28 14:38:35 得分 0
其实只要这几条就行了
后台 Label lblProductID = (Label) MyList.Items[i].FindControl("NewsId");
前台:<asp:TemplateColumn HeaderText="编号" HeaderStyle-HorizontalAlign=Center> <ItemTemplate> <asp:Label id="NewsId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NewsID") %>' /> </ItemTemplate> </asp:TemplateColumn>Top




