怎么给HyperLinkColumn的DataNavigateUrlField指定多个字段?(datagrid)

 

怎么给HyperLinkColumn的DataNavigateUrlField指定多个字段?

楼主tanrui(Tanruy) 2004-08-15 10:43:52 在 .NET技术 / ASP.NET 提问

我想让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.csdn.net/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的模板列时,有时候需要这么使用:

< asp:TemplateField >
    
< ItemTemplate >
        
< input  id =ttChk  name =ttChk  type =checkbox  value ="<%#Eval(" SaleOrderID") % > " οnclick="OnTTTableCheck(this)" runat="server" />
    
</ ItemTemplate >
</ asp:TemplateField >


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

chaobaojun

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值