我想使用一个函数将数据绑定到同一页面上的多个RadDropDownList。
ASPX:
<telerik:RadDropDownList OnPreRender="bind_dd"ID="pprice_paymethod"
ClientIDMode="Static"runat="server" Width="100px" Skin="Metro" DefaultMessage="Pay
Method"AppendDataBoundItems="true"></telerik:RadDropDownList>
C#
protected void bind_dd(object sender, EventArgs e)
{
RadDropDownList dd = sender as RadDropDownList;
dd.DataSource = ds.Tables[0];
dd.DataValueField = "Payment_Type_ID";
dd.DataTextField = "Payment_Type";
dd.DataBind();
}
Soultion?
答案 0 :(得分:0)
LookUpID int
CategoryID int
描述varchar(20)
Value varchar(10)
LookupGroup int
这是调用函数的调用
FillAjaxDropDown(LookUpCategory.Gender,ddlGender,DropDownComboDefault.DefaultValueEmpty)
我在查找表中发送了我想要的数据的CategoryID,在这种情况下发送性别
我发送了下拉控件 - 我在ASP.Net页面中的控件在这种情况下ddlGender
我发送它时我希望控件在绑定时如何显示这种情况下DefaultValueEmpty
public void FillAjaxDropDown(int iCategoryID,AjaxControlToolkit.ComboBox ddl,DropDownComboDefault DefaultValue) {强>
- 这是我的数据访问层,它创建了一个新的数据访问 DAL.DataAccess Dal = new DAL.DataAccess();
- 这会创建我将填充下拉列表的数据类型 动态obj =新的LookUpCollection();
- 这是对数据访问的调用,它调用存储过程并填充我的LookupCollection对象。
obj = Dal.GetLookupByCategoryID(iCategoryID);
- 我检查对象内是否有记录 if(obj.Count&gt; 0){
我确保在下拉列表中未选择任何内容 ddl.SelectedIndex = -1;
我将数据设置为对象。 ddl.DataSource = obj;
设置对象中的字段 ddl.DataValueField =“Value”; ddl.DataTextField =“Description”;
-I将数据对象绑定到下拉控件 的 ddl.DataBind(); 强>
根据DropDownComboDefault发送的内容,如果我希望第一个字段不显示,空字符串或字符串显示-Select -
,我会确定默认显示是什么 **switch (DefaultValue) {
case DropDownComboDefault.DefaultValueNone:
break;
case DropDownComboDefault.DefaultValueEmpty:
ddl.Items.Insert(0, "");
ddl.SelectedIndex = 0;
break;
case DropDownComboDefault.DefaultValueSelect:
ddl.Items.Insert(0, "--Select--");
ddl.SelectedIndex = 0;
break;
}
}
}
创建此功能
public void FillDropDown(dd RadDropDownList) {
dd.DataSource = ds.Tables[0];
dd.DataValueField = "Payment_Type_ID";
dd.DataTextField = "Payment_Type";
dd.DataBind();
}
- 调用函数
FillDropDown(DD);
- dd是下拉控件的名称
答案 1 :(得分:0)
问题解决了。
解决方案:
<telerik:RadDropDownList OnPreRender="bind_dd" ID="pprice_paymethod" ClientIDMode="Static" runat="server" Width="100px" Skin="Metro" DefaultMessage="Pay Method" OnClientSelectedIndexChanged="BusinessLogic_EnableBillButton"></telerik:RadDropDownList>
protected void bind_dd(object sender, EventArgs e)
{
RadDropDownList dd = sender as RadDropDownList;
dd.DataSource = ds.Tables[0];
dd.DataValueField = "Payment_Type_ID";
dd.DataTextField = "Payment_Type";
dd.DataBind();
}