datagrid数据表中有这样一行字段:<asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="产品名称" DataNavigateUrlFormatString="cpinfo.aspx?id={0}"
DataTextField="产品名称" HeaderText="产品名称">
<HeaderStyle Wrap="False"></HeaderStyle>
<ItemStyle Width="40%"></ItemStyle>
</asp:HyperLinkColumn>
该段为产品名称的链接,并且将所点的产品名称信息也传递到打开的网页想实现上述功能,并且打开网页是个小窗口,其他功能不变,需要用到window.open()现在不知道该如何将javascript嵌入进去。希望懂的朋友给个详细的代码。这里不胜感激!!!!!

解决方案 »

  1.   

    DataNavigateUrlFormatString="cpinfo.aspx?id={0}"
    改成
    DataNavigateUrlFormatString="javascript:window.open(\"cpinfo.aspx?id={0}\")"
      

  2.   

    DataNavigateUrlFormatString="cpinfo.aspx?id={0}"
    改成
    DataNavigateUrlFormatString="javascript:window.open(\"cpinfo.aspx?id={0}\")"
    不行。。打开的窗口地址是http://javascript:openwin('cpinfo.aspx?id=vc333bcvbcv')
    55555555555不知道问题出在那里ps:在前边写了一个openwin(url)的函数了已经。前边的调用javascript可以,但是在datagrid中调用还是有问题。谁能指点下啊啊
      

  3.   

    你说的没错。我查看了 .NET 对 HyperLinker 的实现代码,
    在输出 url 时,它会用 ResovleClientUrl() 来对 Url 进行处理。
    所以前面多了 http://。看来不能用 HyperLinkerColumn 实现你的要求。
    想到一个用模板列实现你的要求的方法。但是觉得不够简洁。待我再想想。
      

  4.   

    还是在ItemDataBound里面
    利用你的超级联接列的列索引e.Item.Cells[超级联接index].Attributes["onclick"]="yourscript"
      

  5.   

    dandantree 的方法和我想的方法大同小异。
    我只是觉得这么简单的问题,需要在 ItemDataBound 里处理,太累赘。一个问题是,yourscript 部分需要自己去计算一次要打开的 url.还有个问题就是,yourscript 这个函数必须返回 false。
    否则浏览器会去找你那个错误的 url.
      

  6.   

    汗。。
    >_<~~~~~~~~~~
    期待manbaum   ing~~~~~~~~~~~~~~~~~
      

  7.   

    To chocolate111:试试看行不行。DataNavigateUrlFormatString保持不变。
    DataNavigateUrlFormatString="cpinfo.aspx?id={0}"在 ItemDataBound 里做:HyperLink link = (HyperLink)e.Item.Cells[index].Controls[0];
    link.Attributes.Add("OnClick", string.Format("openwin('{0}'); return false;", link.NavigateUrl));index 是你的 HyperLinkColumn 的索引。
      

  8.   

    to manbaum 大哥。
    感谢你的c#。。
    但是偶没学过c。郁闷ing。能用vb.net再给写个么。