键入“强制转换发送方(对象)”作为下拉列表并将数据绑定到其中

本文关键字:下拉列表 数据绑定 转换 对象 键入 | 更新日期: 2023-09-27 18:35:38

我想使用一个函数将数据绑定到同一页面上的多个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();
}

灵魂?

键入“强制转换发送方(对象)”作为下拉列表并将数据绑定到其中

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

LookUpID int

类别 ID int

描述 瓦尔查尔(20)

价值瓦尔查尔(10)

LookupGroup int

这是将调用函数的调用

FillAjaxDropDown(LookUpCategory.Gender, ddlGender, DropDownComboDefault.DefaultValueEmpty)

在这种情况下,我在查找表中发送了所需数据的类别ID

性别

我发送下拉控件 - 我在 ASP.Net 页面中的控件在本例中 ddlGender

我发送它,

我希望在这种情况下绑定控件时如何显示默认值空

public void FillAjaxDropDown(int iCategoryID, AjaxControlToolkit.ComboBox ddl, DropDownComboDefault DefaultValue){

-这是我的数据访问层,它创建了一个新的数据访问 达尔。数据访问 Dal = 新的 DAL。数据访问();

-这将创建数据类型,我将填充我的下拉列表 dynamic obj = new LookUpCollection();

- 这是对数据访问的调用,它调用存储过程并填充我的 LookupCollection 对象。
obj = Dal.GetLookupByCategoryID(iCategoryID);

-我检查对象中是否有记录 如果(对象。计数> 0) {

  • 我确保下拉列表中没有选择任何内容 ddl.SelectedIndex = -1;

  • 我将数据设置为对象。 ddl.数据源 = obj;

  • 在我的对象中设置字段 ddl.DataValueField = "Value"; ddl.DataTextField = "Description";

-我将数据对象绑定到下拉控件 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 是下拉控件的名称

问题解决了。

溶液:

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