.net GridView 事件问题

来源:百度知道 编辑:UC知道 时间:2024/07/08 04:05:12
以前没深究,现在正里八经用问题就多了。

第一条请不要复制,第二条要切身体验。谢谢

请问如果我在GridView里建了一个自定义列来增加CheckBox 然后我还要取得这一行的主键(问题二,如何控制不让CheckBox多选,别说用RadioButton)
然后,接着问题一,我是否要给CheckBox1增加事件?或是给GridView增加事件??这个概念我真的搞不清楚。
引伸第一个问题,如果我不给CheckBox1增加事件,如何取主键?
我如果增加了事件如何取主键?
是不是GridView也要加事件?????

切身体会不要复制网上的,你自己的代码可以。主要是概念我真的不清楚。。。
protected void Button1_Click(object sender, EventArgs e)
{
kaoShi ks = new kaoShi();

for (int i = 0; i < GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
ks.Kao_shi_Id = (int)GridView1.DataKeys[i].Value;
ks.Kao_shi_Id = Convert.ToInt32(GridView1.DataKeys[GridView1.Rows[i].RowIndex].Value);
}

}
//foreach (GridViewRow c in GridVi

楼主的意思是不是增加模板列 模板列里放checkbox 然后checkbox只能单选?取得这一行的主键 是不是就是数据绑定?

如果是这个意思

那么在grid的rowdatabound事件里 给checkbox赋属性就可以了

单选则要做在checkbox的checkedchanged事件里
每当选中一个checkbox的时候 循环grid的每一行让其他的checkbox.checked=false就可以了

不知道我理解的意思对不对

foreach (GridViewRow gr in GridView1.Rows)
{
CheckBox a = (CheckBox)gr.Cells[6].FindControl("CheckBox1");
if (a.Checked)
{
string exid = ((Label)gr.Cells[0].FindControl("Label1")).Text;
string exname = ((Label)gr.Cells[1].FindControl("Label2")).Text;
string extch = ((Label)gr.Cells[4].FindControl("Label3")).Text;

这个我以前用的..
你的主建在哪,你就CELL[*]列就行了.

主建你可以取巧.直接给CHECKBOX绑定的值就是主建好了<%#Bind("id")%>

GridView 有SelectedIndexChanging事件 为何你还要写checkbox事件呢

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
if (e.NewSelectedIndex >= 0)