使用Ajax在radgrid内部级联下拉列表 [英] Cascading dropdown inside radgrid with Ajax
本文介绍了使用Ajax在radgrid内部级联下拉列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在telerik Radgrid中实现级联下拉列表。单击Insert时,将显示下拉列表。根据第一个下拉列表中的选择,第二个将在Ajax调用后填充。我希望它是客户端,但未能找到好的例子。请帮忙。
在radgrid中,我创建了如下下拉菜单:
I want to implement cascading dropdownlist in a telerik Radgrid. On click of Insert, the dropdowns should appear.According to selection in the first dropdown, the second will be poopulated after an Ajax call. I want it to be client side and have failed to find good examples. Please help.
Inside the radgrid, I am creating dropdowns as follows:
protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem item = e.Item as GridEditableItem;
GridEditManager manager = item.EditManager;
HyperLink hyperLink = (HyperLink)item["OrderTask"].Controls[0];
hyperLink.Visible = false;
DropDownList droplist = new DropDownList();
droplist.ID = "DropDownListOrderTask";
droplist.AutoPostBack = true;
item["OrderTask"].Controls.Add(droplist);
CascadingDropDown ccdOrderTask = new CascadingDropDown();
ccdOrderTask.ID = "ccdOrderTask";
ccdOrderTask.Category = "OrderTask";
ccdOrderTask.TargetControlID = "DropDownListOrderTask";
ccdOrderTask.PromptText = "Select Order Task";
ccdOrderTask.LoadingText = "Loading OrderTask";
ccdOrderTask.ServiceMethod = "BindOrderTask";
ccdOrderTask.ServicePath = "ajaxservice.asmx";
TextBox txt = (TextBox)item["TaskOwner"].Controls[0];
txt.Visible = false;
droplist = new DropDownList();
droplist.ID = "DropDownListTaskOwner";
item["TaskOwner"].Controls.Add(droplist);
CascadingDropDown ccdTaskOwner = new CascadingDropDown();
ccdTaskOwner.ID = "ccdTaskOwner";
ccdTaskOwner.Category = "TaskOwner";
ccdTaskOwner.ParentControlID = "DropDownListOrderTask";
ccdTaskOwner.TargetControlID = "DropDownListTaskOwner";
ccdTaskOwner.PromptText = "Select Task Owner";
ccdTaskOwner.LoadingText = "Loading Task Owner";
ccdTaskOwner.ServiceMethod = "BindTaskOwner";
ccdTaskOwner.ServicePath = "ajaxservice.asmx";
}
}
但级联下拉列表不会调用方法!BindOrdertask方法如下:
But the cascading dropdown list does not call the method!BindOrdertask method is as follows:
[WebMethod]
public CascadingDropDownNameValue[] BindOrderTask(string knownCategoryValues, string category)
{
OrderRequestTaskTypeTable _orderRequestTaskTypeTable = new OrderRequestTaskType_List().ExecuteTypedDataTable();
List<CascadingDropDownNameValue> orderTaskDetails = new List<CascadingDropDownNameValue>();
foreach(DataRow dtRow in _orderRequestTaskTypeTable.Rows)
{
String orderTaskId = dtRow["OrderRequestTaskTypeId"].ToString();
String orderTaskName = dtRow["DescriptionTaskType"].ToString();
//orderTaskDetails.Add(new CascadingDropDownNameValue(orderTaskId, orderTaskName));
orderTaskDetails.Add(new CascadingDropDownNameValue("orderTaskId", "orderTaskName"));
}
return orderTaskDetails.ToArray();
}
推荐答案
这篇关于使用Ajax在radgrid内部级联下拉列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文