我的网格视图中有一个按钮,网格有时可以有很多行
<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 结束时我不再需要这个了
+";"+((GridViewRow)Container).RowIndex
现在我只需要获取实际的按钮(我之前没有提到每行有超过 1 个按钮)