我想訪問radGrid控件中的值。鑑於下面的圖像,我想訪問「狀態」的值。但我似乎無法得到它。訪問radGrid列中的值
我得到一個錯誤信息
「無法投型 'TripLeg' 鍵入 'Telerik.Web.UI.GridDataItem' 的對象。」
任何想法如何訪問該列?
我想訪問radGrid控件中的值。鑑於下面的圖像,我想訪問「狀態」的值。但我似乎無法得到它。訪問radGrid列中的值
我得到一個錯誤信息
「無法投型 'TripLeg' 鍵入 'Telerik.Web.UI.GridDataItem' 的對象。」
任何想法如何訪問該列?
(altough我越來越喜歡劍道UI)反正在我看來,如果你想獲得你可以使用的狀態值這
string itemValue = dataItem["ColumnUniqueName"].Text;
//no need to convert :)
看看爲RadGrids文檔... http://www.telerik.com/help/aspnet-ajax/grid-accessing-cells-and-rows.html
你幾乎沒有。您只需要將DataItem
投射到適當的物體。假設您的數據源是IEnumerable<TripLeg>
。
這裏的例子 - 我喜歡Telerik的成分很多
if (e.Item is GridDataItem)
{
var item = e.Item as GridDataItem;
var tripLeg = e.Item.DataItem as TripLeg; // Cast to appropriate object
var status = tripLeg.Status;
// var hLink = (HyperLink) item.FindControl("HyperLink1");
// Above code will throw exception if the control is not found.
var hLink = item.FindControl("XXXXX") as HyperLink;
if(hLink != null)
{
hLink.Attributes.Add("XXXXX", "XXXXX");
}
}
我認爲這樣做的'Tripleg'對象必須是GridDataItem類型,它是一種只存在於RadGrid中的類型,即使轉換成功了,如果您可以直接訪問該值,爲什麼還要浪費資源轉換來自RadGrid控件 – Marcianin 2013-05-10 23:48:26
@Marcianin - 'DataItem'必須是「TripLeg」類型(而不是其他方式)。爲了讓您的答案有效,您必須在'RadGrid'內部具有'UniqueName =「ColumnUniqueName」'的'GridBoundColumn'。在OP中,Csharp希望將'Tripleg'的'Status'屬性賦值給'GridTemplateColumn'內的'HyperLink'控件。 – Win 2013-05-11 18:00:05
看看圖片,他已經在gItem.DataItem中擁有狀態值,他需要它來訪問這些數據,我的解決方案將訪問數據並將其分配給字符串。我的觀點是他不需要轉換任何東西,他已經擁有了他所需要的全部價值,就是獲得它。 GridDataItem就像GridView中的DataRow,Telerik控件是類固醇上的常規ASP控件!因此只需查詢具有它的列即可訪問DataRow上的數據 – Marcianin 2013-05-11 19:08:11
我注意到你檢查,以確保'hLink'不爲空。但是,它會在到達if(hLink!= null)之前拋出異常(如果'hLink'爲null)。請看我的答案。 – Win 2013-05-12 02:56:15