我在DataGrid中添加了一个超级链接列,设置了DataNavigateUrlField,后在DataNavigateUrlFormatString中用book.aspx?bookid={0}来访问,可我不知道如何进行多个参数的传递,还请高手不吝赐教。

解决方案 »

  1.   

    以上
    DataNavigateUrlField="DeptID" DataNavigateUrlFormatString="LeaveWordDeptQuery.aspx?DeptID={0}" 
    改为:
    DataNavigateUrl="LeaveWordDeptQuery.aspx?DeptID=<%# DataBinder.Eval(Container.DataItem,"DeptID")%>&Name=<%# DataBinder.Eval(Container.DataItem,"DeptName")%>"其中DeptID,DeptName为你的字段名
      

  2.   

    to  karykwan(独行者):
    这是什么控件??
      

  3.   

    把超级连接列改成模板列,在HTML里面写
    DataNavigateUrl="LeaveWordDeptQuery.aspx?DeptID=<%# DataBinder.Eval(Container.DataItem,"DeptID")%>&Name=<%# DataBinder.Eval(Container.DataItem,"DeptName")%>"
      

  4.   

    to airapple5(MiChAeL):
    改成模板列后,加的是什么控件添加的DataNavigateUrl啊?
      

  5.   

    试试类似book.aspx?bookid={0}&bookname={0}&bookprice={0}之类的行不行?
      

  6.   

    book.aspx?bookid={0}&bookname={0}&bookprice={0}????这样传的参数都是一样的吧?有什么意义?
      

  7.   

    换成模板列,然后<a href="LeaveWordDeptQuery.aspx?DeptID=<%# DataBinder.Eval(Container.DataItem,"DeptID")%>&Name=<%# DataBinder.Eval(Container.DataItem,"DeptName")%>">
      

  8.   

    在使用DataGrid的时候如果你有一个asp:HyperLinkColumn又想使用多个需要绑定的参数作为链接的url,那么请改成模板列,使用普通的link标签<a>或者asp:HyperLink都可以,下面2种实现多绑定参数的解决方案(1)后台返回url
    前台
    <asp:TemplateColumn HeaderText="打开">
    <ItemTemplate>
    <asp:HyperLink Text="打开" NavigateUrl='<%# myfunc2(DataBinder.Eval(Container.DataItem,"vName"),DataBinder.Eval(Container.DataItem,"iAge"))%> ' Runat="server" Target="_blank" ID="Hyperlink1">
    </asp:HyperLink>
    </ItemTemplate>
    </asp:TemplateColumn>
    后台
    protected string myfunc2(object s1,object s2)
    {
    return "newpage.aspx?name="+s1.ToString()+"&age="+s2.ToString();
    }
    (2)直接前台设定url
    <asp:TemplateColumn HeaderText="打开">
    <ItemTemplate>
    <asp:HyperLink Text="打开" NavigateUrl='<%#"newpage.aspx?name="+DataBinder.Eval(Container.DataItem, "vname")+"&age="+DataBinder.Eval(Container.DataItem, "iage") %>' Runat="server" Target="_blank">
    </asp:HyperLink>
    </ItemTemplate>
    </asp:TemplateColumn>其实以上2个方案是一回事情,但是前者更加清晰,而且易于后台动态生成url。