Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 键入Cast sender(object)作为dropdownlist并将数据绑定到它?_C#_Asp.net_Webforms_Telerik - Fatal编程技术网

C# 键入Cast sender(object)作为dropdownlist并将数据绑定到它?

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

我想使用一个函数将数据绑定到同一页面上的多个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>
苏蒂翁

在本例中,我的数据库中有一个查找表,它是由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();

}