C# Gridview弹出窗口未从与Linkbutton单击对应的RowCommand事件打开

C# Gridview弹出窗口未从与Linkbutton单击对应的RowCommand事件打开,c#,asp.net,gridview,datagridview,rowcommand,C#,Asp.net,Gridview,Datagridview,Rowcommand,我在Gridview模板字段中有Linkbutton。 我想从RowCommand事件重定向到弹出自定义大小窗口中的另一个页面 注意:这里我不想调用LinkButton的OnClientScript属性来打开JavaScript弹出自定义大小窗口。我想将Gridrow保存到会话对象中,并仅从服务器端代码打开窗口 代码如下: <ItemTemplate> <itemstyle width="5%" /> <asp:LinkButton CssClass

我在Gridview模板字段中有Linkbutton。 我想从RowCommand事件重定向到弹出自定义大小窗口中的另一个页面

注意:这里我不想调用LinkButton的OnClientScript属性来打开JavaScript弹出自定义大小窗口。我想将Gridrow保存到会话对象中,并仅从服务器端代码打开窗口

代码如下:

<ItemTemplate>
    <itemstyle width="5%" />
    <asp:LinkButton CssClass="l_link" ID="lnkView" runat="server"  
      DataTextField="overWriteType" 
      CommandName="overWriteType"
      CommandArgument='<%# Eval("overWriteType") %>'
      Text='<%# Eval("overWriteType") %>'></asp:LinkButton>
</ItemTemplate>

protectedvoid gvKeys\u行命令(对象发送方,GridViewCommandEventArgs e)
{
if(e.CommandName==“overWriteType”)
{
System.Text.StringBuilder sb=新的System.Text.StringBuilder();
sb.追加(“脚本语言='javascript'>”);
sb.Append(“window.open('OverwriteConfiguration.aspx','PopUp',”);
sb.追加(“'top=0,left=0,width=500,height=500,menubar=no,toolbar=no,status,resizeable=yes,addressbar=no');”;
RegisterStartupScript(Page,GetType(),“OpenWindow”,sb.ToString(),true);
}
}

上面的代码没有打开任何窗口。

您不想使用RegisterStartupScript。在这种情况下,您想为按钮添加onclick处理程序,而是想在RowDataBound中执行此操作:

protected void gvKeys_RowDataBound(object sender, GridViewRowEventArgs e)
{

  if (e.Row.RowType == DataControlRowType.DataRow)
  {

    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("window.open('OverwriteConfiguration.aspx', 'PopUp',");
    sb.Append("'top=0, left=0, width=500, height=500, menubar=no,toolbar=no,status,resizable=yes,addressbar=no');<");

    LinkButton l = (LinkButton)e.Row.FindControl("lnkView");

    l.Attributes.Add("onclick", sb.ToString());

   }

}
protectedvoid gvKeys\u RowDataBound(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow)
{
System.Text.StringBuilder sb=新的System.Text.StringBuilder();
sb.Append(“window.open('OverwriteConfiguration.aspx','PopUp',”);

sb.Append('top=0,left=0,width=500,height=500,menubar=no,toolbar=no,status,resizeable=yes,addressbar=no');这不是一个ajax调用吗?你是说在RowDataBound事件中?