C# 键入Cast sender(object)作为dropdownlist并将数据绑定到它?
我想使用一个函数将数据绑定到同一页面上的多个RadDropDownList ASPX:C# 键入Cast sender(object)作为dropdownlist并将数据绑定到它?,c#,asp.net,webforms,telerik,C#,Asp.net,Webforms,Telerik,我想使用一个函数将数据绑定到同一页面上的多个RadDropDownList ASPX: <telerik:RadDropDownList OnPreRender="bind_dd"ID="pprice_paymethod" ClientIDMode="Static"runat="server" Width="100px" Skin="Metro" DefaultMessage="Pay Method"AppendDataBoundItems="true"></teler
<telerik:RadDropDownList OnPreRender="bind_dd"ID="pprice_paymethod"
ClientIDMode="Static"runat="server" Width="100px" Skin="Metro" DefaultMessage="Pay
Method"AppendDataBoundItems="true"></telerik:RadDropDownList>
苏蒂翁
在本例中,我的数据库中有一个查找表,它是由CategoryID设置的。
字段如下所示
查找ID int
范畴内
说明varchar20
值varchar10
查找组int
这是将调用函数的调用
FillAjaxDropDownLookUpCategory.Gender、ddlGender、DropDownComboDefault.DefaultValueEmpty
在本例中,我发送了我希望在查找表中显示的数据类别ID
我发送下拉控件-在本例中,我在ASP.Net页面中拥有的控件
我将其发送到我希望控件在绑定到此案例DefaultValueEmpty时显示的方式
public void FillAjaxDropDownint iCategoryID、AjaxControlToolkit.ComboBox ddl、DropDownComboDefault默认值
{
-这是我的数据访问层,它创建了一个新的数据访问层
DAL.DataAccess DAL=新的DAL.DataAccess
-这将创建我将填充下拉列表的数据类型
动态obj=新查找集合
-这是对数据访问的调用,它调用存储过程并填充我的LookupCollection对象。
obj=Dal.getLookupByCategoryIndicateGoryId
-我检查对象中是否有记录
如果对象计数>0{
我确保在下拉列表中未选择任何内容
ddl.SelectedIndex=-1
我将datasourcecce设置为对象。
ddl.DataSource=obj
在我的对象中设置字段
ddl.DataValueField=值;
ddl.DataTextField=说明
-我将数据对象绑定到下拉控件
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;
}
}
}
创建此函数
公共无效FillDropDowndd RadDropDownList
{
}
-调用函数
填充下降dd
-dd是您的下拉控件的名称,已解决问题
解决方案:
<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();
}
此代码将数据绑定到dd,但不绑定到发件人。我已经尝试:sender=objectdd;:不工作…我不明白你在问什么。用你的目标编辑你的问题,不要写评论。我想使用一个函数将数据绑定到同一页面上的多个RadDropDownList。我有一个单独的Dal/DataAccess层,但我在您的情况下。我将尝试编辑它以符合您的要求。我完全理解您在这里所做的操作。但问题是,当我执行onprerender=myfuction时,它会发送两个参数:Sender object和Event e。我要做的是识别Sender并将数据绑定到它。请尝试下面的代码创建您的函数,然后从您的co调用该函数de.您可以向它发送任何RadDropDownList控件,它将使用相同的数据填充该控件。
dd.DataSource = ds.Tables[0];
dd.DataValueField = "Payment_Type_ID";
dd.DataTextField = "Payment_Type";
dd.DataBind();
<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();
}