2012-05-27 32 views
0

我正在使用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网址上的网格视图的“标题”字段中没有硬编码无论是从网格列字段名称和网址进入案例选择。

因此,考虑到上面的信息,选择一个案例是否是这个要求的最佳方法? 任何更好的方法的例子或建议将不胜感激!

回答

相关问题