键入Cast sender(object)作为下拉列表并将数据绑定到它?

时间:2014-12-30 17:29:04

标签: 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"></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?

2 个答案:

答案 0 :(得分:0)

  • 在这种情况下,我的数据库中有一个LookUp表,它由CategoryID设置。 字段如下

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();

}