2009-08-13 73 views
2

我已經添加了RadControl,RadGrid,並且需要在編輯模式下添加一個radComboBox。將RadComboBox添加到RadGrid編輯

當用戶單擊radComboBox時,我需要在用戶更新值時將radComboBox的「text」和「value」同時保存到表中。

<telerik:RadComboBox ID="RadComboBox1" Runat="server" 
      DataSourceID="SqlDataSource1" DataTextField="docCategoryName" 
      DataValueField="docCategoryID" Height="200px" Skin="Vista"> 

當用戶從radcombobox控件選擇,我需要DataTextField & DataValueField的值轉換爲HiddenField。

回答

1

Program.X描述的方法非常好。當然,如果您在RadGrid的GridTemplateColumn中使用RadCombobox,則可以使用此功能。

RadGrid還提供了一個內置的GridDropDownColumn,可以在編輯期間自動渲染RadCombobox。如果您選擇使用內置列類型,則需要以編程方式設置爲渲染radgrid控件客戶端事件處理程序,如下所示:

protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e) 
{ 
    //Find GridEditableItems when in Edit mode 
    if (e.Item is GridEditableItem && e.Item.IsInEditMode) 
    { 
     //Get reference to item (i.e. Row) 
     var item = e.Item as GridEditableItem; 

     //Get reference to auto-generated RadCombobox in 
     //specific column (in this case, a column called Title) 
     var rcb = item["Title"].Controls[0] as RadComboBox; 
     if (rcb == null) 
      return; 

     //Customize the RadCombobox properities 
     rcb.OnClientSelectedIndexChanged = "onselectedindexchanged"; 
    } 
} 

其中「onselectedindexchanged」是客戶端的名稱設計用於處理RadCombobox事件的頁面上的JavaScript函數。

以上任何一種方法都可以幫助您實現目標。

1

Telerik的是最好的人來幫助你這個問題,但是從他們的網站(並從內存中):

http://www.telerik.com/help/aspnet-ajax/combo_clientsideonclientselectedindexchanged.html

如果您有radCombo:

<telerik:RadComboBox 
ID="RadComboBox1" 
runat="server" 
OnClientSelectedIndexChanged="OnClientSelectedIndexChanged"> 
</telerik:RadComboBox> 

與您的JS事件:

<script language="javascript" type="text/javascript"> 
function OnClientSelectedIndexChanged(sender, eventArgs) 
{ 
var item = eventArgs.get_item(); 

// get the text and value elements 
var text=item.get_text(); 
var val=item.get_value(); 

$('#hiddenField').val(val); 
} 
</script> 

其中hiddenField是隱藏的f的ID ield。

+0

謝謝你的回覆,我會測試這個。 – Kush 2009-08-14 11:13:55