GridView 链接问题

肥胖的柠檬 2008-01-08 05:15:35
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="true"
OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCreated="GridView1_RowCreated">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="WL_ID" DataNavigateUrlFormatString="insert.aspx?id={0}" HeaderText="查看详情" Text="查看" />
<asp:TemplateField HeaderText="查看详情">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl ='<%# "insert.aspx?id=="+Eval("WL_ID") %>' Text="查看"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

现在是="WL_ID" 字段,现在问题是我这字段名字是不固定的, 我想要,别的字段,应如何动态地改变这个("WL_ID")
如要GridView 中的 colmuns[0]
...全文
281 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
一品梅 2008-01-09
  • 打赏
  • 举报
回复
能把您的案例具体实施步骤讲给我们听听么?楼主大侠??啊???
肥胖的柠檬 2008-01-09
  • 打赏
  • 举报
回复
你这要求有点不合理

那应如何呢?
西安风影 2008-01-09
  • 打赏
  • 举报
回复
你这要求有点不合理
肥胖的柠檬 2008-01-09
  • 打赏
  • 举报
回复
我的绑定的表是要改变的,绑定后,字段会改变
daabin 2008-01-09
  • 打赏
  • 举报
回复
不知道,你说的那样实现,有什么意义。。。
肥胖的柠檬 2008-01-09
  • 打赏
  • 举报
回复
再UP
肥胖的柠檬 2008-01-09
  • 打赏
  • 举报
回复
但是你的DataBinder.Eval(Container.DataItem, "id ")%

id 是固定的,我这里在可变的 要换成别一个字段..
daabin 2008-01-09
  • 打赏
  • 举报
回复
下面的是我一个项目中使用的

例如:

<ItemTemplate><a onclick="window.open(' <%# "showUnitInfo.aspx?id= "+DataBinder.Eval(Container.DataItem, "id ")%> ','','height=600,width=500,scrollbars=no,status=no')">详情</a></ItemTemplate>
肥胖的柠檬 2008-01-09
  • 打赏
  • 举报
回复
再UP
肥胖的柠檬 2008-01-09
  • 打赏
  • 举报
回复
.....
换一个说法吧:
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>

<head>

<script runat="server">

ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("PriceValue", typeof(Double)));

for (int i = 0; i < 3; i++)
{
dr = dt.NewRow();

dr[0] = i;
dr[1] = (Double)i * 1.23;

dt.Rows.Add(dr);
}

DataView dv = new DataView(dt);
return dv;
}

void Page_Load(Object sender, EventArgs e)
{

MyDataGrid.DataSource = CreateDataSource();
MyDataGrid.DataBind();
MyDataGrid.Columns["Select an Item"].
}

</script>

</head>

<body>

<form id="Form1" runat="server">

<h3>HyperLinkColumn Example<h3>

<asp:DataGrid id="MyDataGrid"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
AutoGenerateColumns="false"
runat="server">

<HeaderStyle BackColor="#aaaadd"/>

<Columns>

<asp:HyperLinkColumn
HeaderText="Select an Item"
DataNavigateUrlField="IntegerValue"
DataNavigateUrlFormatString="detailspage.aspx?id={0}"
DataTextField="PriceValue"
DataTextFormatString="{0:c}"
Target="_blank"/>

</Columns>

</asp:DataGrid>

</form>

</body>
</html>

现在 DataNavigateUrlField="IntegerValue" 对应的表为 dt
现在我换了一个datatabe,名字为:table1 有col1,col2字段
现在我要把DataNavigateUrlField="IntegerValue"
换成DataNavigateUrlField="col1"
要如何写呢?

一品梅 2008-01-08
  • 打赏
  • 举报
回复
eg(举例):
Step1:建立GridView及SqlDataSource控件
在前一页(HyperLinkFieldCode.aspx)中建立GridView及SqlDataSource控件。(略)

Step2:添加HyperLinkField超链接字段
HyperLinkField超链接字段DataNavigate-UrlFormatString的属性设置为:
ProductDetailsCode.aspx?ProductName={0}&CatagoryID={1}&SupplierID={2}

Step3:创建显示产品明细DetailsView网页
请创建显示产品明细ProductDetailsCode.aspx网页,加入一个DetailsView与SqlDataSource控件,并将DetailsView的ID属性设为"dviewProduct",SqlDataSource控件的ID属性设为"sqldsNorthwind",注意不要将DetailsView的DataSourceID属性指定到SqlDataSource控件,因为下一步要展现CodeBehind技巧。

Step4:添加CodeBehind程序
在此要开始陆续展现SqlDatasource控件的CodeBehind程序技巧,只有通过CodeBehind程序技巧才能完全掌握SqlDataSource撰写的灵活度与强大功能。请在ProductDetailsCode.aspx的Page_Load中添加下列程序代码:
Using System.Web.Configuration;
Protect void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack)
{
Session["sourceUrl']=Context.Request.UrlReffer; //读取来源URL
}
SqldsNorthwind.ConnectionString=WebConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;

sqldsNorthwind.SelectCommand="select * from Products where
ProductName=@ParamProductName and CategoryID=@ParamCategoryID and SupplierID=@ParamSupplierID";

//建立参数
//较为正式-声明语法
//QueryStringParameter productParameter=new QueryStringParameter();
//productParameter.Name="paramProductName";
//productParameter.Type=TypeCode.String;
//productParameter.DefaultValue=Request.QueryString["ProductName"];
//简洁写法,其同等于上面个别-声明语法
QueryStringParameter productParameter=new QueryStringParameter("paramProductName",TypeCode.String,"ProductName");
sqldsNorthwind.SelectParameters.Add(productParameter);

...


...

dviewProduct.DataSourceID=sqldsNorthwind.ID;    //可根据情况的不同动态改写数据源。
}
一品梅 2008-01-08
  • 打赏
  • 举报
回复
呵呵,理解错了,这个要在后台动态编写.
一品梅 2008-01-08
  • 打赏
  • 举报
回复
NavigateUrl   =' <%#   "insert.aspx?id=="+Eval("WL_ID")   %> '     Text="查看"> </asp:HyperLink> 

应该格式化.
eg.
在DataNavigateUrlFields属性中写上:id.
在设置HyperLinkField超链接字段的DataNavigateUrlFields属性中
写上:insert.aspx?id={0}
blueiv 2008-01-08
  • 打赏
  • 举报
回复
后台写
×××.datasourse=(数据源dataReader或者DataSet)
×××.databind()
×××是你的ID名

62,243

社区成员

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

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

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

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