在Response.Redirect(Request.RawUrl)之后将焦点设置为在Gridview中单击的最后一个按钮

时间:2013-03-09 13:04:36

标签: c# asp.net gridview focus itemtemplate

我的gridview中有一个按钮 网格有时可以有很多行

<asp:TemplateField HeaderText="DDT">
                <ItemTemplate> 
                    <asp:Button ID="DdtUnit" runat="server" Text=" -1 "  
                    CommandName="DdtUnit" 
                    CommandArgument='<%# Eval("CaseID")+ ";" + Eval("CaseworkerID")+ ";" + Eval("EventDate")+ ";" + Eval("EventID")+ ";" + ("-1")+";"+((GridViewRow)Container).RowIndex%>'/>
                </ItemTemplate> 
            </asp:TemplateField>

命令参数传递给存储过程,然后我有一个Response.Redirect(Request.RawUrl);

我想回到页面上的同一个地方,只是到了同一行 但更好的方法是将重点放在刚刚点击的同一个按钮上。

我已经尝试在页面指令中设置MaintainScrollPositionOnPostBack ="true"但是这对IE没有用(我现在只对IE感兴趣)

所以我尝试将((GridViewRow)Container).RowIndex传递给会话变量 然后做

 protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack == false)
            {
                BindGridVeiw_Timeevents(MainCaseRef);
                Timeevents.Rows[MySession.Current.gridFocusIndex].Focus();
            }


        }

但是我得到了无处,我错过了什么?

编辑:

 protected void Timeevents_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
}

我想我到了某个地方!至少我在命令结束时不再需要这个arg

  

+&#34 ;;&#34 +((GridViewRow)容器).RowIndex

现在我只需要获得实际的按钮(我之前没有提到每行超过1个按钮)

0 个答案:

没有答案