gridview如何获取索引值问题(来源:Internet)

方法一:

使用Parent属性就可以
比如我们自定义了一个LinkButton,那么当我们点击这个控件时如何知道它在GridView中所在的行呢,请看下面的代码。
1    protected void LinkButton1_Command(object sender, CommandEventArgs e)
2    {
3        LinkButton lb = (LinkButton)sender;
4        DataControlFieldCell dcf = (DataControlFieldCell)lb.Parent;
5        GridViewRow gvr = (GridViewRow)dcf.Parent;
6        GridView1.SelectedIndex = gvr.RowIndex;
7    }
使用第一个Parent属性的时候就会将LinkButton的范围扩大到DataControlFieldCell(当前按钮所在表格中的列单元),然后再使用一次Parent属性,可以再将列单元的范围扩大到GridViewRow(当前列单元所在的行单元),这个时候使用行单元的RowIndex属性就可以得到当前行所在表格的序号了。

 

方法二:

在你的GridView的Databind事件里面写
if (e.Row.RowType == DataControlRowType.DataRow)
        { ((Button)e.Row.FindControl("button7")).Attributes.Add("OnClick", "window.open('../Care/EditCare.aspx?CareId=" + ((Label)e.Row.FindControl("Label8")).Text + "&a=" + Request["a"].ToString() + "','_blank','height=500,width=795,top=180,left=220,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no')");
        }

方法三:

 protected void Button7_Click(object sender, EventArgs e)
    {
        int selectedIndex = 65533;
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            if (((GridView1.Rows[i].FindControl("button7"))) == sender)
            {
                selectedIndex = i;
            }
        }
        if (selectedIndex != 65533)
        {
            string CareId = ((Label)GridView1.Rows[selectedIndex].FindControl("Label8")).Text;
            Response.Write("<script language='javascript' type=''>window.open('../Care/EditCare.aspx?CareId=" + CareId + "&a=" + Request["a"].ToString() + "','_blank','height=500,width=795,top=180,left=220,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no')</script>");
        }
    }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值