.net GridView 事件问题

以前没深究,现在正里八经用问题就多了。第一条请不要复制,第二条要切身体验。谢谢请问如果我在GridView里建了一个自定义列来增加CheckBox然后我还要取得这一行的主... 以前没深究,现在正里八经用问题就多了。

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

请问如果我在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 GridView1.Rows)
//{
// if (((CheckBox)(c.FindControl("CheckBox1"))).Checked)
// {
// ks.Kao_shi_Id = (int)GridView1.DataKeys[c.RowIndex].Value;
// //int BoxID = Convert.ToInt32(gdvWishList.DataKeys[gdvWishList.Rows[i].DataItemIndex].Value);

// }

//}

Label1.Text = ks.Kao_shi_Id.ToString();
}
展开
 我来答
犄角桃
2009-03-06 · TA获得超过1139个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:363万
展开全部
楼主的意思是不是增加模板列 模板列里放checkbox 然后checkbox只能单选?取得这一行的主键 是不是就是数据绑定?

如果是这个意思

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

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

不知道我理解的意思对不对
百度网友6443e6b61
2009-03-06 · TA获得超过137个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:187万
展开全部
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")%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4ee60860a
2009-03-06 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:123万
展开全部
GridView 有SelectedIndexChanging事件 为何你还要写checkbox事件呢

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
if (e.NewSelectedIndex >= 0)
{
//自定义事件
}
}

主键就是GridView1.Rows[e.NewSelectedIndex].Cells[1].Controls[0])).Text.Trim()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友15f77d6
2009-03-09 · 超过27用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:0
展开全部
protected void cbAllCheck_CheckedChanged(object sender, EventArgs e) 全选
{
this.cbOverCheck.Checked = false;
if (this.cbAllCheck.Checked == true)
{
foreach (DataGridItem dl in this.DataGridMember.Items)
{
CheckBox cb = (CheckBox)dl.FindControl("cbSelect");
cb.Checked = true;
}
}
else {
foreach (DataGridItem dl in this.DataGridMember.Items)
{
CheckBox cb = (CheckBox)dl.FindControl("cbSelect");
cb.Checked = false;
}

}
}
protected void cbOverCheck_CheckedChanged(object sender, EventArgs e) 返选
{
this.cbAllCheck.Checked = false;
if (this.cbOverCheck.Checked == true)
{
foreach (DataGridItem dl in this.DataGridMember.Items)
{
CheckBox cb = (CheckBox)dl.FindControl("cbSelect");
if (cb.Checked == true)
{
cb.Checked = false;
}
else
{
cb.Checked = true;
}
}
}
}这是我自己的代码,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
red_guitar
2009-03-16 · TA获得超过551个赞
知道小有建树答主
回答量:805
采纳率:0%
帮助的人:525万
展开全部
直接把 主键列 放在第一列不显示就行了嘛.............这么麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佛含恩4592
2009-03-09 · TA获得超过207个赞
知道答主
回答量:211
采纳率:0%
帮助的人:112万
展开全部
遍历写的很潇洒么;
既然都能循环遍历到CheckBox
那也应该能取到值/
很顺理成章..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式