怎么给HyperLinkColumn的DataNavigateUrlField指定多个字段?
我想让HyperLinkColumn的url参数有两个字段:
somepage.aspx?id=1&name=terry
在数据源中的字段是ID和Name,
那应该怎么写DataNavigateUrlField? 问题点数:20、回复次数:5Top
1 楼saucer(思归)回复于 2004-08-15 10:57:02 得分 20
HyperLinkColumn doesn't support multiple parameters, use TemplateColumn instead
<asp:TemplateColumn HeaderText="View Details">
<ItemTemplate>
<asp:Hyperlink runat="server" Text='View Details'
NavigateUrl='< %# "page.aspx?ViewID=" & Server.UrlEncode(Container.DataItem("ListingNo"))
"&Param2="&Server.UrlEncode(DropDown1.SelectedItem.Value)%> '
ID="Hyperlink1" NAME="Hyperlink1" />
</ItemTemplate>
</asp:TemplateColumn>
see
http://www.dotnetspider.com/Technology/KBPages/585.aspx
Top
2 楼webdiyer(陕北吴旗娃)回复于 2004-08-15 10:57:29 得分 0
用模板列,或者在DAtaGrid的ItemDataBound事件处理程序中先用FindControl方法找到对应列的HyperLink,然后通过绑定的数据指定它的NavigateUrl属性。Top
3 楼tongtianming(菜鸟也有梦想)回复于 2004-08-15 11:01:32 得分 0
<asp:HyperLinkColumn DataNavigateUrlField="Num" DataNavigateUrlFormatString="Response.Redirect('../YL/YL.htm?id={0}')" DataTextField="Link" HeaderText="链接"></asp:HyperLinkColumn>
<asp:HyperLinkColumn DataNavigateUrlField="id" DataNavigateUrlFormatString="javascript:window.showModalDialog('ViewDetail.aspx?id={0}');" DataTextField="id" HeaderText="ID"></asp:HyperLinkColumn>
*************datagride列传递多个数据*********
<asp:TemplateColumn HeaderText="备注">
<ItemTemplate>
<asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="Editfittings.aspx?str1=<%# DataBinder.Eval(Container.DataItem, 'ID')%>&str2=<%# DataBinder.Eval(Container.DataItem, 'CarType')%>" text='<%# DataBinder.Eval(Container.DataItem,"备注")%>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
当年我写的,有2种方法能选择Top
4 楼tnt8csdn2000(琥珀雨田)回复于 2004-08-15 11:41:45 得分 0
既然用模板列了,就用linkbutton,在后台想怎么写就怎么写。Top
5 楼46539492(男儿当自强(http://blog.youkuaiyun.com/46539492/))回复于 2004-08-15 11:45:46 得分 0
就用模板列。
<asp:TemplateColumn HeaderText="备注">
<ItemTemplate>
<asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="Editfittings.aspx?str1=<%# DataBinder.Eval(Container.DataItem, 'ID')%>&str2=<%# DataBinder.Eval(Container.DataItem, 'CarType')%>" text='<%# DataBinder.Eval(Container.DataItem,"备注")%>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
或者
<a href=“list.aspx?id='<%#databinder.eval(container.dataitem,"id")'&child='<%#databinder.eval(container.dataitem,"child")'”>连接</a>
原以为二楼的可以呢。谁知道我费了一个下午的时间都没搞定。
不过最后小白给我一条正确的一条语句,我模仿着给写下来了。才ok!!
正确答案是::NavigateUrl='<%#"MingDan.spx"+"?"+"subnum="+DataBinder.Eval(Container.DataItem,"sub_num")+"&userId="+DataBinder.Eval(Container.DataItem,"userID") %>'
这个事网上搜了一下!
在使用GridView的模板列时,有时候需要这么使用:





结果在运行的时候会提示说ttChk这个控件的服务器标记的格式不正确,到底哪里不正确呢?
原来问题出在双引号,把value属性的值用单引号引起来就正确了,或者说把绑定语句用单引号引起来或者不要用引号才行,用双引号就不行。对比:
value="<%#Eval("SaleOrderID") %>" (不行)
value='<%#Eval("SaleOrderID") %>' (可以)
value=<%#Eval("SaleOrderID") %> (可以)