我添加了一个RadControl,radgrid控件和我需要在编辑模式中添加一个radcombobox控件。

当用户点击radcombobox控件,我需要得到既“文本”和radcombobox控件的“价值”保存到表时,用户更新的值。

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

             

当用户从选择radcombobox控件,我需要得到DataTextField&DataValueField的值成HiddenField。

有帮助吗?

解决方案

通过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”是一个客户端网页上的JavaScript函数设计用于处理radcombobox控件事件的名称。

这些方法的执行应使您能够实现自己的目标。

其他提示

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是隐藏字段的ID。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top