for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DB db = new DB();
CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("chkCheck");
if (chk.Checked == true)
{
string Is_Audit = "通过审查";
//int courseID =Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex].Value);
string courseID = GridView1.DataKeys[e.RowIndex].Value.ToString();
我在GridView空间里面添加了一个CheckBox,若选中该行(chk.Checked == true),则记录该行的关键字,
刚开始我用string courseID = GridView1.DataKeys。ToString(),出错,说是记录多行的关键字;
用string courseID = GridView1.DataKeys[e.RowIndex].Value.ToString()这个又越界!
请哪位高手帮忙指点一下。谢谢!
{
DB db = new DB();
CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("chkCheck");
if (chk.Checked == true)
{
string Is_Audit = "通过审查";
//int courseID =Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex].Value);
string courseID = GridView1.DataKeys[e.RowIndex].Value.ToString();
我在GridView空间里面添加了一个CheckBox,若选中该行(chk.Checked == true),则记录该行的关键字,
刚开始我用string courseID = GridView1.DataKeys。ToString(),出错,说是记录多行的关键字;
用string courseID = GridView1.DataKeys[e.RowIndex].Value.ToString()这个又越界!
请哪位高手帮忙指点一下。谢谢!
提示:你可以把i绑定给一个控件
你可以试试 平时我都是这么用的 没有用过e.RowIndex
Literal lblID = (Literal)GridView1.Rows[i].FindControl("lblID");
string courseID = lblID.ToString();
{
string sb=string.Empty;
for(int i=0;i<this.GridView1.Rows.Count;i++)
{
CheckBox cb=(GridView1.Rows[i].FindControl("book"))as CheckBox;
if(cb.Checked==true)
{
sb += (GridView1.Rows[i].FindControl("lblBook") as Label).Text + ",";
}
}给楼主参考一下
之后在调用的时候可以System.Convert.ToInt32(e.CommandArgument.ToString())将值调出,前提条件是使用这个事件GridViewCommandEventArgs e
{
CheckBox cbx = (CheckBox)sender;
foreach (GridViewRow gvr in GridViewxz.Rows)
{
CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
ch.Checked = cbx.Checked;
}
}
protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//代码写在这里面试试看。
string str=grid.DataKeys[e.Row.RowIndex].Value.ToString().Trim();
}
}