使用Ajax在radgrid内部级联下拉列表 [英] Cascading dropdown inside radgrid with Ajax

查看:91
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆