请教大家了,如何在DataGrid中进行多个参数的传递?
我在DataGrid中添加了一个超级链接列,设置了DataNavigateUrlField,后在DataNavigateUrlFormatString中用book.aspx?bookid={0}来访问,可我不知道如何进行多个参数的传递,还请高手不吝赐教。 问题点数:50、回复次数:14Top
1 楼karykwan(独行者)回复于 2005-09-03 22:48:57 得分 5
以上
DataNavigateUrlField="DeptID" DataNavigateUrlFormatString="LeaveWordDeptQuery.aspx?DeptID={0}"
改为:
DataNavigateUrl="LeaveWordDeptQuery.aspx?DeptID=<%# DataBinder.Eval(Container.DataItem,"DeptID")%>&Name=<%# DataBinder.Eval(Container.DataItem,"DeptName")%>"
其中DeptID,DeptName为你的字段名
Top
2 楼wenl(kenshin)回复于 2005-09-03 23:04:52 得分 0
markTop
3 楼crystal1204(寻找未来)回复于 2005-09-03 23:17:22 得分 0
mark too!Top
4 楼xyunsh(学海无涯,回头是岸)回复于 2005-09-03 23:40:03 得分 0
markTop
5 楼tmacwow()回复于 2005-09-03 23:41:16 得分 0
to karykwan(独行者):
这是什么控件??Top
6 楼airapple5(MiChAeL)回复于 2005-09-03 23:44:54 得分 5
把超级连接列改成模板列,在HTML里面写
DataNavigateUrl="LeaveWordDeptQuery.aspx?DeptID=<%# DataBinder.Eval(Container.DataItem,"DeptID")%>&Name=<%# DataBinder.Eval(Container.DataItem,"DeptName")%>"
Top
7 楼tmacwow()回复于 2005-09-04 00:29:15 得分 0
to airapple5(MiChAeL):
改成模板列后,加的是什么控件添加的DataNavigateUrl啊?Top
8 楼zeusvenus()回复于 2005-09-04 01:48:26 得分 5
试试类似book.aspx?bookid={0}&bookname={0}&bookprice={0}之类的行不行?Top
9 楼tmacwow()回复于 2005-09-04 13:53:41 得分 0
book.aspx?bookid={0}&bookname={0}&bookprice={0}????
这样传的参数都是一样的吧?有什么意义?Top
10 楼tmacwow()回复于 2005-09-04 20:16:06 得分 0
帮帮俺啊Top
11 楼tanlijun37(天下)回复于 2005-09-04 20:49:35 得分 5
换成模板列,然后<a href="LeaveWordDeptQuery.aspx?DeptID=<%# DataBinder.Eval(Container.DataItem,"DeptID")%>&Name=<%# DataBinder.Eval(Container.DataItem,"DeptName")%>">Top
12 楼tmacwow()回复于 2005-09-05 13:46:47 得分 0
????????????????????????????????????Top
13 楼LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^)回复于 2005-09-05 14:01:33 得分 30
在使用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。Top
14 楼tmacwow()回复于 2005-09-05 21:48:19 得分 0
感谢啊!!!!!Top




