台灣最大程式設計社群網站
線上人數
901
 
會員總數:245959
討論主題:189543
歡迎您免費加入會員
討論區列表 >> ASP.NET >> gridview的hyperlink使用List<>
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
gridview的hyperlink使用List<>
價值 : 300 QP  點閱數:227 回應數:4
樓主

LAIJUNG
門外漢
0 17
874 17
發送站內信

各位前輩好,小弟第一次在gridview中使用hyperlink

我已經把取出的DB值(a 和 b)放入在 List<String> liststr = new List<String>() 中了

想要gridview的cell[1]的欄位分別從liststr 中一一放入gridview裡

但是發現最後跑出結果cell[1]的欄位全部顯示 a

---------- ----------
名稱 |連結 名稱 |連結
---------- ----------
a | a |
---------- -想要結果--> ----------
a | b |
---------- ----------



我在GridView1_RowDataBound程式
[code]
List<String> liststr = new List<String>();
if (e.Row.RowType == DataControlRowType.DataRow)
{

HyperLink hyperlink = new HyperLink();
hyperlink.NavigateUrl = "";
foreach (string myStringList in liststr)
{
hyperlink.Text = myStringList .ToString();
}
hyperlink.Target = "_blank";
e.Row.Cells[1].Controls.Add(hyperlink);

}

[/code]



搜尋相關Tags的文章: [ hyperlink ] , [ gridview ] , [ List<> ] ,
本篇文章發表於2020-04-05 22:33
1樓
作者回應

LAIJUNG
檢舉此回應
想要結果如圖

本篇文章回覆於2020-04-05 22:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

真的有點難
檢舉此回應
改用link吧
<DataItemTemplate>
<a onclick="window.open('op.aspx?id=<%# DataBinder.Eval(Container.DataItem, "欄位")%>','_blank' ,'status=yes,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,height=300,width=1000,location=no' );" href="#">
<%#Container.Text%>
</a>
</DataItemTemplate>
本篇文章回覆於2020-04-06 08:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

老頑童
捐贈 VP 給 老頑童 檢舉此回應
RowDataBound是每繫結一個Row就會執行一次
所以在此處跑foreach (string myStringList in liststr)迴圈是有問題的
因為都會跑到迴圈最後一筆,結果每個Row都會顯示一樣的資料(最後一筆)
應該要依e.Row.RowIndex去取對應的資料
例如:
hyperlink.Text = liststr[e.Row.RowIndex];
本篇文章回覆於2020-04-06 11:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

LAIJUNG
檢舉此回應
TO 真的有點難、老頑童

謝謝前輩指點~

最後我使用 老頑童 的取RowIndex方式,

我把code打出來,給以後有需要的人~

[code]
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
List<String> liststr = new List<String>();//取db值放入
List<String> listurlstr = new List<String>();////取db值放入
if (e.Row.RowType == DataControlRowType.DataRow)
{

HyperLink hyperlink = new HyperLink();
hyperlink.NavigateUrl = listurlstr[e.Row.RowIndex];
hyperlink.Text = liststr[e.Row.RowIndex];
hyperlink.Target = "_blank";
e.Row.Cells[1].Controls.Add(hyperlink);

}
}
[/code]
本篇文章回覆於2020-04-06 14:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.