我正在使用asp.net gridview来显示mdb文件中的数据列表。有5列显示,约240行数据。每行显示“名”,“姓”,“标题”,“流派”,“问题”和“身份证号码”如何从ASP.Net gridview列字段链接到.aspx页面
每个“标题”条目都有相应的.aspx页面。 aspx页面对应于网格中的“标题”条目 这种关系的示例如下所示:title =“从前有一段时间处于长篇故事中”; aspx页面可能是/alongstory.aspx。
我要实现什么目标:让用户单击格,开放相应的.aspx页标题字段
什么我迄今所做的:在“标题”字段中创建一个aspLabel - 文本=” < %#Eval(“Title”)%>';并添加对于标签加载事件的C#代码:
aspLabel l = sender as aspLabel;
l.ClientsideEvents.Click = String.Format("function(s,e) {{window.location = \"{0}"; }}, GetPageUrl(l));
而且GetPageUrl:
Private string GetPageUrl(aspLabel l)
{GridViewDataItemTemplateContainer c = l.NamingContainer as GridViewDataItemTemplateContainer:
var value = (string)DataBinder.Eval(c.DataItem, "Title");
string result;
switch (value) {
case "in the mirror":
result = "AnotherTitlePage.aspx";
break;
case "When your Eyes":
result = "AnotherTitlePage2.aspx";
break;
case "Her Delivery":
result = "ATitlePage1.aspx";
break;
case "You Never Know What You Might See":
result = "TitlePage3.aspx";
break;
default:
result = "TitlePageDoesNotHavesameNameAsDBEntry.aspx";
break;
}
return Page.ResolveUrl(result);
}
虽然这个工作,它要求所有的标题被硬编码到相应的select语句与corrosponding URL,这相当于240沿案例!此外,唯一标识每行的唯一字段是“id”值,它是一个整数 - 我试图设置一个case来为int设置一个选择并返回正确的url(铸造错误是问题)。
我希望什么来完成: 寻找最快捷的方式打开了点击corrosponding网址上的网格视图的“标题”字段中没有硬编码无论是从网格列字段名称和网址进入案例选择。
因此,考虑到上面的信息,选择一个案例是否是这个要求的最佳方法? 任何更好的方法的例子或建议将不胜感激!