2012-05-27 65 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網址上的網格視圖的「標題」字段中沒有硬編碼無論是從網格列字段名稱和網址進入案例選擇。

因此,考慮到上面的信息,選擇一個案例是否是這個要求的最佳方法? 任何更好的方法的例子或建議將不勝感激!

回答

相關問題