没有地址的弹出窗口&单击gridview中的超级链接字段的菜单栏

时间:2012-10-05 04:54:14

标签: javascript asp.net

我在c#dot net中开发一个屏幕,其中我有一个搜索屏幕,其中包含一个包含一些查询字符串值的超链接字段,在超链接字段的clik上我必须打开一个弹出窗口工作正常然而我不想要地址在弹出窗口中显示的栏或菜单项也应该是具体的,任何人都可以告诉我如何实现它。

我正在使用下面的代码,但它只改变窗口大小而不隐藏菜单等,而且第一个弹出窗口以完整大小加载,然后变为我指定的大小。

<asp:HyperLinkField DataNavigateUrlFields="FileName" DataTextField="FileName"
Target="_blank" DataNavigateUrlFormatString="javascript:var NewWin=window.open
('abc.aspx?EMPId={0}',null,'width=800,height=200,top=100,left=100,scrollbars=no,
directories=no,status=no,toolbar=no,resizable=no');"HeaderText="EMPId">

</asp:HyperLinkField>

另外,我可以使用一个链接按钮,这个弹出窗口正常工作但是我需要在网格的rowdatabound中添加查询字符串到URL,点击我的链接按钮会弹出然后弹出窗口打开然而我不是能够通过使用下面的代码来实现。

protected void grdDisplayResult_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hyperlink = (HyperLink)e.Row.Cells[2].Controls[0];
Label lblRowNumber = ((Label)e.Row.FindControl("lblRowNum"));
hyperlink.NavigateUrl += "&RowNum=" + lblRowNumber.Text;
}
} 

如果我为他们中的任何一个获得解决方案,那将会有很大的帮助。

3 个答案:

答案 0 :(得分:0)

我想也许您可以使用链接按钮而不是超链接。

答案 1 :(得分:0)

尝试使用HTMLAnchor代替asp:Hyperlink

<强>网格:

 <asp:TemplateField HeaderText="Options">
   <ItemTemplate>
       <a href="javascript:void(0);" id="aFooLink" runat="server">
        ClickMeDamnit</a>
   </ItemTemplate>
 </asp:TemplateField>

<强>代码隐藏:

protected void grdDisplayResult_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink aFooLink = (HyperLink)e.Row.Cells[2].Controls[0];
        aFooLink.Attributes.Add("onclick", "window.open('abc.aspx?EMPId=0','window','toolbar=no, menubar=no, resizable=yes,location=no,center:no;height=200px,width=300px,Top=1500,left=1500;statusbar:no;');");            
    }
} 

希望它适合你。

答案 2 :(得分:0)

你可以通过调用javascript函数来实现这一点。将参数传递给它。您可以使用gridview&amp;的RowDataBound事件找到您的控制服务器端。附加客户端事件以打开弹出窗口。您可以使用Eval&amp;将参数传递给您的函数。打开一个包含所需查询字符串值的弹出窗口。像这样的东西 在aspx上

    <script language="text/javascript">
     function OpenPopup(id,name)
     {
          window.open('myWindow.aspx?id='+id+'&name='+name,'_blank',width=800,height=200,top=100,left=100,scrollbars=no,menubar=no,directories=no,status=no,toolbar=no,resizable=no,url=no');
     }
     </script>

在gridview的RowDataBound事件内的服务器端

if (e.Row.RowType == DataControlRowType.DataRow)
        { 
          LinkButton myLinkBtn= (LinkButton)e.Row.FindControl("yourControlid");
          if(myLinkBtn !=null)
          {
              myLinkBtn.Attributes.add('onclick','javascript:OpenPopup('"+ Eval(e.row.DataItem,"yourDbField1")+ "','"+ Eval(e.row.DataItem,"yourDbField2")+ "');return false;");
          }
        }