.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();
} 展开
第一条请不要复制,第二条要切身体验。谢谢
请问如果我在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();
} 展开
7个回答
展开全部
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")%>
{
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)
{
//自定义事件
}
}
主键就是GridView1.Rows[e.NewSelectedIndex].Cells[1].Controls[0])).Text.Trim()
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
if (e.NewSelectedIndex >= 0)
{
//自定义事件
}
}
主键就是GridView1.Rows[e.NewSelectedIndex].Cells[1].Controls[0])).Text.Trim()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
}
}这是我自己的代码,
{
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;
}
}
}
}这是我自己的代码,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接把 主键列 放在第一列不显示就行了嘛.............这么麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
遍历写的很潇洒么;
既然都能循环遍历到CheckBox
那也应该能取到值/
很顺理成章..
既然都能循环遍历到CheckBox
那也应该能取到值/
很顺理成章..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询