DataGrid中的NavigateUrl传值问题
传值问题,语句不正确,请确保正确的传这3个值,并让连接文字也用获取后台的值;
测试正确的给全部分数!!!
<asp:TemplateColumn HeaderText="操作">
<ItemTemplate>
<asp:HyperLink ID=hrl Runat=server NavigateUrl='tender_scencebuy.aspx?gysid=<%=tenderId%>&proid=<%#DataBinder.Eval(Container.DataItem,"项目ID")%>&prjpakeid=<%#DataBinder.Eval(Container.DataItem,"a0") %>&buystates=<%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>'> <%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>
</asp:HyperLink>
</ItemTemplate>
问题点数:100、回复次数:18Top
1 楼ChengKing((.net: http://blog.csdn.net/ChengKing ))回复于 2006-09-14 20:23:32 得分 0
参考:
<asp:HyperLinkColumn HeaderText="客户名称" DataTextField="ABRName" DataNavigateUrlField="CusNO" DataNavigateUrlFormatString="../..//b.aspx?&cusno={0}&id=" ><ItemStyle HorizontalAlign="left"></ItemStyle>
</asp:HyperLinkColumn>
Top
2 楼drk928(一起看斜阳)回复于 2006-09-14 22:30:50 得分 0
楼上正解.楼主的写法就没必要用链接列了,直接用一个<a href="">就行了,或者用javascriptTop
3 楼oasis_wen(嘿嘿)回复于 2006-09-14 22:41:06 得分 0
在后台写DataBound事件里给HyperLink 的NavigateUrl属性赋值Top
4 楼jc15271149(奶皮儿)回复于 2006-09-15 08:04:11 得分 0
用超链接列实现,参考
<asp:HyperLinkField DataNavigateUrlFields="username,userid" DataNavigateUrlFormatString="WebForm.aspx?name={0}&id={1}" DataTextField="username" />Top
5 楼lwjvince(Insert into you(memory)values(my all life))回复于 2006-09-15 11:01:22 得分 0
<asp:HyperLinkColumn HeaderText="操作" DataTextField="cz" DataNavigateUrlField="tender_scencebuy.aspx?gysid=<%=tenderId%>&proid=<%#DataBinder.Eval(Container.DataItem,"项目ID")%>&prjpakeid=<%#DataBinder.Eval(Container.DataItem,"a0") %>&buystates=<%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>"></asp:HyperLinkColumn>
这样也不行啊
Top
6 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-09-15 11:10:44 得分 0
如二楼所说:
<asp:TemplateColumn HeaderText="操作">
<ItemTemplate>
<a href='tender_scencebuy.aspx?gysid=<%=tenderId%>&proid=<%#DataBinder.Eval(Container.DataItem,"项目ID")%>&prjpakeid=<%#DataBinder.Eval(Container.DataItem,"a0") %>&buystates=<%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>'><%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>
</a></ItemTemplate>Top
7 楼lwjvince(Insert into you(memory)values(my all life))回复于 2006-09-15 11:18:24 得分 0
楼上所说的方法可行,但是在后台我要进行操作的时候就findcontrol不到这一个列
因为这个值随DataGrid中这一行的某个值 显示或不显示.Top
8 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-09-15 11:36:40 得分 0
<asp:TemplateColumn HeaderText="操作">
<ItemTemplate>
<% if (符合条件){%>
<a href='tender_scencebuy.aspx?gysid=<%=tenderId%>&proid=<%#DataBinder.Eval(Container.DataItem,"项目ID")%>&prjpakeid=<%#DataBinder.Eval(Container.DataItem,"a0") %>&buystates=<%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>'><%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>
</a>
<%
}
else
{
response.write(" ");
}
%>
</ItemTemplate>
Top
9 楼lwjvince(Insert into you(memory)values(my all life))回复于 2006-09-15 11:43:16 得分 0
这方法我也试过了 ,问题是 它返回的这一列全部是一个值,如果bzStr变动了那么全部就成了已过期
<asp:TemplateColumn HeaderText="操作">
<ItemTemplate>
<%if(bzStr=="1"){%>
<asp:Label ID="ycId" Runat="server" ForeColor="#ff0066">已过期</asp:Label>
<%}else{%>
<a href="tender_scencebuy.aspx?gysid=<%=tenderId%>&proid=<%#DataBinder.Eval(Container.DataItem,"项目ID")%>&prjpakeid=<%#DataBinder.Eval(Container.DataItem,"a0") %>&buystates=<%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>"><%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%></a>
<%}%>
</ItemTemplate>
</asp:TemplateColumn>Top
10 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-09-15 12:19:24 得分 0
bzStr是什么东西?
是不是table里的东西?
if(DataBinder.Eval(Container.DataItem,"bzStr") =="1")
感觉你的逻辑似乎有些混乱,bzStr如果不是库里的东西,那么当绑定的时候,这个值是不会发生变化的……
如果你确实需要用findcontrol的话
可以用<a id='test' runat=server></a>
后台用HtmlAnchor作强制转换Top
11 楼kbxj406(羽儿)回复于 2006-09-15 12:50:05 得分 0
<asp:TemplateColumn HeaderText="操作">
<ItemTemplate>
<a href='tender_scencebuy.aspx?gysid=<%=tenderId%>&proid=<%#DataBinder.Eval(Container.DataItem,"项目ID")%>&prjpakeid=<%#DataBinder.Eval(Container.DataItem,"a0") %>&buystates=<%#DataBinder.Eval(Container.DataItem, "cz")%>'><%#DataBinder.Eval(Container.DataItem, "cz").ToString().Trim()%>
</a>
</ItemTemplate>
tenderId是你在后台cs中定义的一个变量吧?Top
12 楼lxwin01(阿幸)回复于 2006-09-15 13:17:34 得分 0
代码片断
<asp:HyperLinkColumn Text="<img src=Images/edit.gif border=0 alt=更改、浏览此人员帐号信息 />" Target="_blank"
DataNavigateUrlField="EmpID" DataNavigateUrlFormatString="EmpBase.aspx?EmpID={0}"></asp:HyperLinkColumn>
Top
13 楼lxwin01(阿幸)回复于 2006-09-15 13:19:52 得分 0
<asp:BoundColumn Visible="False" DataField="EmpID" HeaderText="编号"></asp:BoundColumn>
<asp:HyperLinkColumn Text="<img src=Images/edit.gif border=0 alt=更改、浏览此人员帐号信息 />" Target="_blank" DataNavigateUrlField="EmpID" DataNavigateUrlFormatString="EmpBase.aspx?EmpID={0}"></asp:HyperLinkColumn>
数据你cs后台邦定一下.Top
14 楼lwjvince(Insert into you(memory)values(my all life))回复于 2006-09-15 15:29:24 得分 0
是呀,有点乱了,烦请指点;
我后台是这样写的:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataRowView dv=(DataRowView)e.Item.DataItem;
bzStr=dv["tsbz"].ToString();
if(bzStr=="1")
{
e.Item.Cells[6].Text="已过期";
e.Item.Cells[7].Controls.Clear();
}
}
bzStr是数据表中那一行的一个标志Top
15 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-09-15 16:19:26 得分 0
<asp:TemplateColumn HeaderText="操作">
<ItemTemplate>
<a id='test' runat=server></a>
</ItemTemplate>
</asp:TemplateColumn>
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataRowView dv=(DataRowView)e.Item.DataItem;
bzStr=dv["tsbz"].ToString();
if(bzStr=="1")
{
HtmlAnchor temp =(HtmlAnchor)e.item[n].FindControl("test");
temp.HRef="xxx.asp";//自己拼个字符串
temp.Visible=true;//不显示是false
}
}
Top
16 楼benxiaowei()回复于 2006-09-15 17:05:49 得分 100
标准答案来了,请给分
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
System.Web.UI.WebControls.ListItemType ltem=e.Item.ItemType;
if(ltem==ListItemType.Pager||ltem==ListItemType.Header||ltem==ListItemType.Footer)
{
return;
}
DataRowView dv=(DataRowView)e.Item.DataItem;
bzStr=dv["tsbz"].ToString();
HtmlAnchor temp =(HtmlAnchor)e.Item.Cells[7].FindControl("test");
string xx1=e.Item.Cells[0].Text.ToString();
string xx2=e.Item.Cells[9].Text.ToString();
string xx3=e.Item.Cells[11].Text.ToString();
if(bzStr=="1")
{
e.Item.Cells[6].Text="<FONT color=red>已过期</FONT>";
temp.Visible=true;
}
else
{
temp.InnerText=xx3;
temp.HRef="tender_scencebuy.aspx?gysid="+tenderId+"&proid="+xx1+"&prjpakeid="+xx2+"&buystates="+xx3+"";
}
}Top
17 楼lwjvince(Insert into you(memory)values(my all life))回复于 2006-09-15 17:11:39 得分 0
因为我说谁能给直接测试的就给全部分,所以没有给你分.
但仍然非常感谢 xxuu503(我爱郭芙蓉!)
谢谢!!!!
Top
18 楼angleoldhen(oldhen)回复于 2006-10-30 16:04:14 得分 0
参与一下Top




