gridview里的  Hyperlink属性中  有个 DataNavigateURLFormateString   
     如果要转到另一个页面,可以用:detail.aspx?ID={0}
如果要重新打开一个小窗口的话是用:javascript:var newwin=window.open('detail.aspx?ID={0}','null','width=300,height=200')吗?    书上是这么写的,可打进去却不行,调试后,那个Hyperlink根本点不了.
  不知道为什么.   我用 <script language=javascript>window.open('detail.aspx?ID={0}','newwin','width=300,height=200')</script>")    也不行.

解决方案 »

  1.   

    还有一个属性是绑定ID字段的,然后你直接点击Hyperlink按钮就会转到相应页面,不用写script language=javascript>window.open('detail.aspx?ID={0}','newwin','width=300,height=200') </script>")   
      

  2.   

    转到相应页面,我知道啊,但要控制窗口大小啊,
    所转页面有一个formview 要用到  gridview中Hyperlink传多来的  ID  才能相应显示内容
      

  3.   

    因为你没有设置DataNavigateURLFields的值
    例:
    DataNavigateURLFields 设置值 IDCol
    DataNavigateURLFormateString 设置值 detail.aspx?ID={0}
    最后就会生成Hyperlink(<a>元素)的href值为:
    detail.aspx?ID=IDCol对应的值你不绑定DataNavigateURLFields的话,生成的html代码里的Hyperlink(<a>元素)就不会有href属性,所以那个Hyperlink(<a>元素)根本点不了。打开新窗口也是一样的道理。
      

  4.   

    detail.aspx?ID={0}   这样是没问题的  我想重新打开新窗口的话,老是有错
      不知道在这里面,要怎样表达?
      

  5.   

    <asp:GridView SkinID="NewSkin" ID="GridView1"  CssClass="Gv1" runat="server" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" OnRowDataBound="GridView1_RowDataBound" OnSelectedIndexChanging="GridView1_SelectedIndexChanging" OnSorting="GridView1_Sorting" OnPageIndexChanging="GridView1_PageIndexChanging" DataKeyNames="ConfirmId" PageSize="19">
           <Columns>
           <asp:TemplateField HeaderText="操作">
                  <ItemTemplate>
                  <img src="../Images/view.gif" border="0" align="absmiddle" onclick="window.open('ConfirmEdit.aspx?ConfirmId=<%# DataBinder.Eval(Container.DataItem,"ConfirmId")%>&type=Detail','','width=800,height=600')" />
                  </ItemTemplate>
                  <HeaderStyle Width="60px" />
                  </asp:TemplateField>
               
                  <asp:TemplateField HeaderText ="確認單號" SortExpression ="ConfirmNo">
                  <ItemTemplate>
                    <%# DataBinder.Eval(Container.DataItem,"Confirmno")%>
                  </ItemTemplate>
                  <ItemStyle Width ="80px" VerticalAlign ="Middle" HorizontalAlign ="Center" />
                  <HeaderStyle HorizontalAlign ="Center" Width="80px" />
                  </asp:TemplateField>
      

  6.   

    Hyperlink: javascript:openWin({0});<script type="text/javascript">
    function openWin(id)
    {
    window.open('detail.aspx?ID='+id,'newwin','width=300,height=200');
    }
    </script>
      

  7.   

    啊?
     DataNavigateURLFormateString   属性里可以输那么多啊 ?
    还有函数呢, 
      

  8.   

    <asp:HyperLinkColumn DataNavigateUrlField="EmployeeID" DataNavigateUrlFormatString="javascript:varwin=window.open('detail.aspx?ID={0}',null,'width=300,height=200');window.Close();"
           DataTextField="LastName" HeaderText="LastName"></asp:HyperLinkColumn>
      

  9.   


    啊?  有varwin这个
    跟我的差不多,可是真的有varwin吗? 
     不知道行不哦 试下
      

  10.   


    ???郁闷~
    函数当然是写真外部的Hyperlink 中只有 javascript:openWin({0});
      

  11.   

    protected void gv****_RowDataBound(object sender, GridViewRowEventArgs e)            if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Cells[0].Text = "<a href=javascript: onclick=\"javascript:var winObj = window.open('"
                                        + "Detail.aspx?ID=" + e.Row.Cells[0].Text.ToString() 
                                        + "',null,'left=190,top=190,toolbar=no,menubar=no,resizable=yes,scrollbars=yes,location=yes');winObj.focus(0);\">明细</a>";
                }
      

  12.   

    上述方法我测试OK, 只是有点小遗憾: ID 颜色始终是紫红色, 没有办法修改使其能在点击前后不一样.明细二字可用e.Row.Cells[0].Text.ToString() 代替.我在程序中的代码是这样的:
      

  13.   

            protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Cells[4].Text = "<a href=javascript: onclick=\"javascript:var winObj = window.open('"
                                        + "Detail_Post.aspx?ID=" + e.Row.Cells[4].Text.ToString()
                                        + "','WinName','left=190,top=190,toolbar=no,menubar=no,resizable=yes,scrollbars=yes,location=yes');winObj.focus(0);\">"
                                        + e.Row.Cells[4].Text.ToString()+"</a>";
                }
            }
    注意: 其中有三个地方用到 e.Row.Cells[4]