![](/img/trans.png)
[英]Can I modify column cell text from a gridview based on a value from a column that isn't displayed in the gridview?
[英]ASP Gridview: Collect cell value from header column text?
我正在使用ASP中的一些gridviews。我想找出的是:是否有一種快速/良好的方法來基於標題列文本來獲取正確的單元格?
到目前為止,我還沒有完全找到想要的內容。
我正在尋找的東西更像是:row.Cells [“ Name_of_Column”]。Text;
有一種方法可以遍歷每列,然后如果標簽匹配,則抓取文本,請參見: 如何從gridview獲取列名?
但是,我正在做的是使用用戶以編程方式選擇的列制作gridview,所以我不確定row.Cells [2] .Text是否是正確的值,或者它是否可能是row.Cells [3] .Text。或row.Cells [13] .Text等。
我可以通過循環再次解決此問題,我正在尋找一個更簡潔,更簡潔的解決方案。
在此先謝謝您,我將盡力推薦良好的答案。
對於它的價值,您可以使用LINQ(它也使用循環)來創建一個字典,該字典將列名作為鍵,將索引作為值:
Dictionary<string, int> colLookup = GridView1.Columns.Cast<DataControlField>()
.Select((Col, Index) => new { Col.HeaderText, Index })
.ToDictionary(f => f.HeaderText, f => f.Index);
string cellText = e.Row.Cells[colLookup["Name_of_Column"]].Text;
您可以將其設置為實例字段,然后將其初始化一次( Page_Load
fe),然后可以在需要的地方重復使用它。
嘗試這個,
for (int i = 0; i < grdToDisplay.Columns.Count; i++)
{
string header = grdToDisplay.Columns[i].HeaderText;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.