C# 加载弹出窗口后执行Gridview_row命令

C# 加载弹出窗口后执行Gridview_row命令,c#,asp.net,C#,Asp.net,我有一个搜索屏幕,其中我使用GridView,在GridView中我有,在其命令参数中我使用该列的值和(Container.DataItemIndex+1)来查找我单击的项目的行号。在Gridview\u RowCommand中,我在会话变量中分配这些值,以便将它们传递到弹出窗口 假设我的搜索屏幕填充了两行,单击第一行它就可以正常工作,我可以在弹出窗口中访问会话变量;但是,当我单击第二行的linkbutton弹出窗口时,会首先刷新,然后执行Gridview\u RowCommand,因为我不会在

我有一个搜索屏幕,其中我使用GridView,在GridView中我有
,在其命令参数中我使用该列的值和
(Container.DataItemIndex+1)
来查找我单击的项目的行号。在
Gridview\u RowCommand
中,我在会话变量中分配这些值,以便将它们传递到弹出窗口

假设我的搜索屏幕填充了两行,单击第一行它就可以正常工作,我可以在弹出窗口中访问会话变量;但是,当我单击第二行的linkbutton弹出窗口时,会首先刷新,然后执行
Gridview\u RowCommand
,因为我不会在会话变量中获得更新的值

protected void grdDisplayResult_RowCommand(object sender, GridViewCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "Click":
        {
            string[] arg = new string[1];
            arg = e.CommandArgument.ToString().Split(',');
            Session["Empid"] = arg[0];
            Session["RowNum"] = arg[1];
            break;
        }
        default:
            break;
    }
}
下面是我在aspx页面中的链接按钮:点击链接按钮时调用的弹出窗口是一个HTML页面,每个页面上有两个框架

<Columns>
    <asp:TemplateField HeaderText="File Name" ItemStyle-HorizontalAlign="Center">
        <ItemTemplate>
            <asp:LinkButton ID="btn"  runat="server" Text='<%#Eval("Empid")%>'
CommandName="Click" CommandArgument='<%#Eval("Empid") + "," 
+ (Container.DataItemIndex+1)%>' OnClientClick='<%# Eval("Empid",
"window.open(\"abc.html\",null,\"location=0,status=0,toolbar=0
,menubar=0,resizable=1\",\"true\");")%>'/>
        </ItemTemplate>  
</Columns>

我还有一个弹出窗口,当用户单击链接按钮时会弹出。

如果可能的话,您可以分享一些代码吗?我认为onClientClick总是发生在row命令处理程序之前,因为在回发过程中,后者会发生在服务器上。为什么不通过查询字符串将值传递到HTML页面呢?谢谢Tim,我现在使用querystring,它解决了我的问题