datagrid的超链接列参数传递问题

luckyTOTO 2004-11-26 10:15:31
<asp:datagrid id="MyDataGrid" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:HyperLinkColumn DataTextField="News_Title" HeaderText="新闻栏" NavigateUrl='../affiche/news/NewsBrowse.aspx?News_ID=<%#DataBinder.Eval(Container,"DataItem.News_ID")%>'>
</asp:HyperLinkColumn>
<asp:BoundColumn DataField="News_ID" HeaderText="id" Visible=False></asp:BoundColumn>
</Columns>
</asp:datagrid>
为什么只是传递了 <% 呢?
...全文
171 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yt_net 2004-11-26
  • 打赏
  • 举报
回复
To luckyTOTO (胡晓强):
在实际执行时,每一个News_id将会带进{0}之中。
lijianlee 2004-11-26
  • 打赏
  • 举报
回复
小问题请教,关于datagrid里面超联接的参数指定?

HyperLinkColumn一般只传递一个参数
如果要用到两个参数,你可以用模板列
http://www.weste.net/html/200409/20040910QBI104916.html
**********************************************************************************
本人给你询问到了比较权威答案,msdn帮助上写了{}里的参数是0,且只能是0,就是说只能传递一个参数(这一点至少在我们项目组都这么认为的)。那如何解决这个问题呢那我们可以拼接,把2个参数和成一个字符串,把2个一起作为一个整体存储到数据库中,然后把这个整体取出来传过去,因为我们用&拼接的传过去的相当2个参数而且传过去接受后可以直接用!这个过程奥秘就在别名上,微软不是只让传一个参数吗,那我们就传2个参数的别名。
具体写法如下:
select 'id='+id+'&name='+name parme(这个就是别名)。
但&只连接字符串,而传的是数,在写sql语句前要把2个参数有数字转成字符串
int x=5;
strng y=x.ToString();
以后这个也可以
System.Convert.ToString(intNumber);
System.Convert.ToString(你要转换的数字);就能变化成字符串。
其实数字转换字符串还有简单的方法,就是 变量.ToString(); 就行了,但Convert.后面的方法能转换很多类型。哈哈,我又和我们单位金牌打手学一手,给大家分享,真的很经典的方法。
**********************************************************************************
传两个参数只要你在你要链接的地址后面如a.aspx改成a.aspx?参数1=x&参数2=y。
**********************************************************************************
可以传好几个参数啊!你可以把那列改成选择列,然后在单击事件里用
Response.Redirect("index.aspx?a=df&b=dfd&c=dfd")
**********************************************************************************
传递两个参数的方法很简单,直接在URL里写,可以绑定到你的超链接的NavigateUrl属性,然后点击就能链接到你要的网址和传递参数 比如你要链接sina Http://www.sina.com?user=aa&Pas=aa
其中user和pas是传递的变量名,可以随便起,aa的传递的值。在接收页面用Request.QueryString["user"]得到。
**********************************************************************************
HyperLinkColumn.DataNavigateUrlField 的值只能设一个字段。
如果你需要用多个字段格式化你的 NavigateUrl,
可以在 ItemDataBound 方法里手工格式化完成后赋给 NavigateUrl。
需要处理的问题只是如何获得当前行指定字段的值。
<itemtemplate>
<a href='xxxx.aspx?p1=<%#Databinder.Eval(Container.DataItem,"字段1")%>&p2=<%#...类同%>'>...</a>
</itemtemplate>
**********************************************************************************
webform间传参的3种常用方式,任何一种多可以传多个参数
1)request方式
Response.Redirect("webform2.aspx?myid=123&myname=eddie005");
取: string myID = Request.QueryString["myid"];
string myName = Request.QueryString["myname"];

2)Session
存:Session["myTable"] = new DataTable();
取:DataTable tmp = Session["myTable"] as DataTable;

3)Server.Transfer
webForm1:
public int MyAge
{
get{return Convert.ToInt32(TextBox1.Text)}
}

void button1_Click(..)
{
Server.Transfer("webForm2.aspx");
}
webForm2:
void Page_Load(...)
{
if(!IsPostBack)
{
if(Context.Handler.ToString()=="ASP.webForm1_aspx")
{
webForm1 webForm =(webForm)Context.Handler;
int myAge = webForm.MyAge;
}
}
}

luckyTOTO 2004-11-26
  • 打赏
  • 举报
回复
困惑中!
luckyTOTO 2004-11-26
  • 打赏
  • 举报
回复
yt_net(耐特) 的方法能成功了 ,
News_ID={0} 是什么呀 ?我是新手,请教
thooy 2004-11-26
  • 打赏
  • 举报
回复
正确的写法应该是:<asp:HyperLinkColumn DataField="News_id" HeaderText="新闻栏" NavigateUrl="../affiche/news/NewsBrowse.aspx?News_ID={0}">
</asp:HyperLinkColumn>
luckyTOTO 2004-11-26
  • 打赏
  • 举报
回复
谢谢大家,我先试试看
yt_net 2004-11-26
  • 打赏
  • 举报
回复
<asp:HyperLinkColumn DataNavigateUrlField="News_id" DataNavigateUrlFormString="../affiche/news/NewsBrowse.aspx?News_ID={0}" DataTextField="News_Title" HeaderText="新闻栏"></asp:HyperLinkColumn>

这样应该没问题了
luckyTOTO 2004-11-26
  • 打赏
  • 举报
回复
大家来帮忙 呀 ?一会就结贴
yycghy 2004-11-26
  • 打赏
  • 举报
回复
这样写:保证没问题
<asp:HyperLinkColumn DataField="News_id" HeaderText="新闻栏" NavigateUrl="../affiche/news/NewsBrowse.aspx?News_ID={0}">
</asp:HyperLinkColumn>
DataField有可能是datanavagitorurlField,我记不清了,自己试
luckyTOTO 2004-11-26
  • 打赏
  • 举报
回复
<%# DataBinder.Eval(Container,"DataItem.News+ID")%>
里的+ID 是什么呀 ?为什么要加呢 ?
jzyuchen 2004-11-26
  • 打赏
  • 举报
回复
这里不用服务器控件就行了。
<a href='../affiche/news/newsbrowser.aspx?news_id=<%# DataBinder.Eval(Container,"DataItem.News+ID")%>'><%#DataBinder.Eval(Container,"DataItem.News_Title")%></a>
luckyTOTO 2004-11-26
  • 打赏
  • 举报
回复
大家来帮忙呀

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧