整个构思如下:
1、绑定了数据
DBgrid1.DataSource = ds.Tables(0)
DBgrid1.DataBind()
2、
<asp:DataGrid id="DBgrid1" runat="server" >
.....
<Columns>
<asp:BoundColumn HeaderText="RID" DataField="RID" Visible=False />
<asp:HyperLinkColumn DataNavigateUrlField="WID" DataNavigateUrlFormatString="vbscript:ShowDetail({0})" ItemStyle-Width="260pt" HeaderText="名称" SortExpression="Name" DataTextField="Name"/>
......
</Columns>
</asp:DataGrid>  
3、当我点击 “Name”时打开链接
<script language=vbscript>
Dim ShowDetailURL
Sub Window_Onload()
    ShowDetailURL = "a.aspx?WID="
End Sub
</script>
问题如下 :根据RID 不同,打开 页面不同,如 
RID =1  ShowDetailURL = "a.aspx?WID="
RID =2 ShowDetailURL = "B.aspx?WID="
请问有什么比较简洁的方法?

解决方案 »

  1.   

    只能在ItemDataBinder的时候手动判断并绑定HyperLink的连接地址。
      

  2.   

    那里可以用个摸板列
    <ItemTemplate>
    <asp:HyperLink id=HyperLink1 runat="server" NavigateUrl='a.aspx?WID="<%# (DataBinder.Eval(Container,"DataItem.RID"))%>' Target="_blank">
    <%# DataBinder.Eval(Container,"DataItem.name") %>
    </asp:HyperLink>
    </ItemTemplate>
      

  3.   

    <ItemTemplate>
    <asp:HyperLink id=HyperLink1 runat="server" NavigateUrl='a.aspx?WID="<%# (DataBinder.Eval(Container,"DataItem.RID"))%>' Target="_blank">
       <%# DataBinder.Eval(Container,"DataItem.name") %>
             </asp:HyperLink>
    </ItemTemplate>
    不好意思,写的乱了点。
      

  4.   

    //*****我晕了,这个简单三//****添加一个模版列,在模版列里添加一个HyperLink 和HtmlInputHidden控件//****同时HtmlInputHidden控制邦定你要打开窗体的状太//****代码如下
    <input id="txtid" value='<%#DataBinder.Eval(Container.DataItem,"ID")%>' runat="server" type="hidden"/>//****后台代码处理
    //****在itemdatabound事件处理
    //****获取HyperLink,htmlinputhidden控件HtmlInputHidden txtid=(HtmlInputHidden)e.Item.FindControl("txtid");
    HyperLink hylink=(HyperLink)e.Item.FindControl("hylink");if(txtid!=null)
    {
        switch(txtid.value)
        {
            case "1":
                 hylink.NavigateUrl="a.aspx?OPTYE=1";
                 hylink.target="_blak";
                 break;   
           case "2":
                 break;
           case "3":
                 break;
        }}//****也可调用前台js函数来打开不同的窗体
      

  5.   

    //添加超级链接
    for(int i =0; i<DataGrid_1.Items.Count;i++)
    {
      //两种方法打开新窗口,根据需要选择
      //方法一:使用超级链接的方法 target='_blank
      DataGrid_1.Items[i].Cells[1].Text = "<a href='Detail.aspx?ID="+ DataGrid_1.Items[i].Cells[0].Text.ToString()+"' target='_blank '> " + DataGrid_1.Items[i].Cells[1].Text.ToString()  + "</a>";
     }