将RadComboBox添加到RadGrid编辑
问题描述:
我已经添加了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。
答
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函数。
以上任何一种方法都可以帮助您实现目标。
答
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。
谢谢你的回复,我会测试这个。 – Kush 2009-08-14 11:13:55