2009-01-08 63 views
9

使用Javascript讀取telerik radgrid組件im行使用我沒有問題但是,我似乎無論如何發現回發時訪問行數據服務器端。我花了很多年尋找解決方案,但沒有運氣。 任何指針將不勝感激。訪問Telerik RadGrid中的行數據(服務器端)

託尼

+0

是電網編輯?或者你只是試圖獲取網格中的數據? – 2009-01-08 00:43:53

回答

16

你可能想看看OwnerTableView對象,這將讓你訪問表示給定行的字段值的集合的DataKeyValues財產。我在EditCommand事件處理程序中使用它,因爲如果我的網站用戶點擊鏈接編輯網格中的一行,它就會被引導到編輯頁面,並且我需要傳遞關於查詢中給定行的某些信息串。

如果事實證明您是需要的,您還需要定義哪些字段應通過此屬性可用。爲此,請查看網格屬性表中的MasterTableView.DataKeyNames屬性。您基本上指定一個逗號分隔的字段名稱列表。

+0

嗨克里斯,謝謝你的磨坊。這不適用於綁定到網格的項目。你知道如何訪問添加到網格的文本框,這些文本框沒有綁定,但用於捕獲用戶爲該列提供的任何行相關輸入感謝你,Tony – TonyNeallon 2009-01-08 10:12:10

+0

到目前爲止,我只處理綁定列,但檢出http ://www.telerik.com/help/aspnet/grid/gridreferencecontrolsinroweditform.html和http://www.telerik.com/help/aspnet/grid/grdusinggetitemsgetcolumnmethods.html,它們可能會有所幫助。 – 2009-01-08 14:47:07

3

服務器端是容易的部分:

GridItemCollection gridRows = TestGrid.Items; 
foreach (GridDataItem data in gridRows) 
{ 
    ItemClass obj = (ItemClass)data.DataItem; 
} 

它的客戶端部分,我不知道! :[

5

我使用Telerik的網格從一段時間後發現這些物品在他們有關如何從選擇的行服務器或客戶端獲取數據的文檔:

Server-side Client-side

希望你會發現他們很有幫助。

迪克

1
private Int32 GetID() 
{ 
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items) 
    { 
     if (dataItem.Selected == true) 
     { 
      Int32 ID = (Int32)dataItem.GetDataKeyValue("ID"); 
      return ID; 
     } 
    } 
    throw new ArgumentNullException("Id Not found"); 
} 
0
private Int32 GetID() 
{ 
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items) 
    { 
     if (dataItem.Selected == true) 
     { 
      // Int32 ID = (Int32)dataItem.GetDataKeyValue("ID"); 
Int32 ID =Convert.ToInt32(dataItem.GetDataKeyValue("ID")); 
      return ID; 
     } 
    } 

} 
//this will work 
0

這是對我的作品,並使用RadGrid.SelectedItems集合的一個。

protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
     List<Guid> OrderIdList = new List<Guid>(); 

     foreach (GridDataItem OrderItem in this.RadGrid1.SelectedItems) 
     { 
      OrderIdList.Add(new Guid(OrderItem.GetDataKeyValue("OrderId").ToString())); 
     } 
    } 
0

如果在標記或page init中爲動態控件正確創建了控件,那麼RadGrid將正確恢復狀態。

您可以訪問從數據源加載的初始值,如下面的示例所示,前提是您告訴相關表視圖以將列保留在數據鍵中。

protected T GetInitialGridData<T>(GridDataItem item, string uniqueColumnName) { 
    item.ThrowIfNull("item"); 
    uniqueColumnName.ThrowIfNullOrEmpty("uniqueColumnName"); 

    return (T)item.OwnerTableView.DataKeyValues(gridItem.ItemIndex)(columnName); 
} 

如果您使用的是動態自定義模板列,需要去,現在可能是在他們的國家的任何值,你可以使用:

protected string GetCustomTextBoxValue(GridDataItem item, string controlID) { 
    item.ThrowIfNull("item"); 
    controlID.ThrowIfNullOrTrimmedEmpty("controlID"); 

    return ((TextBox)item.FindControl(controlID)).Text; 
}