Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
Asp.net 选择的下拉列表IndexChanged未启动_Asp.net - Fatal编程技术网

Asp.net 选择的下拉列表IndexChanged未启动

Asp.net 选择的下拉列表IndexChanged未启动,asp.net,Asp.net,我有一个dropdownlist,它的autopostback属性设置为true。但是,当值更改时,selectedindexchanged属性不会被激发,而是始终会进入pageload。请告诉我问题出在哪里 <asp:DropDownList ID="ddlVendor" CssClass="ddl" runat="server" OnSelectedIndexChanged="ddlVendor_SelectedIndexChanged" AutoPostBack="true"

我有一个dropdownlist,它的autopostback属性设置为true。但是,当值更改时,selectedindexchanged属性不会被激发,而是始终会进入pageload。请告诉我问题出在哪里

<asp:DropDownList ID="ddlVendor" CssClass="ddl" runat="server"
    OnSelectedIndexChanged="ddlVendor_SelectedIndexChanged" AutoPostBack="true">


protected void ddlVendor_SelectedIndexChanged(object sender, EventArgs e)
{
    List<ProcurementItem> vendorsList = new List<ProcurementItem>();
    vendorsList = (List<ProcurementItem>)ViewState["VendorList"];
    string ID = string.Empty;
    string accountID = string.Empty;
    int? accountType = null;
    if (ddlVendor.SelectedIndex > 0)
    {
        ID = ddlVendor.SelectedValue;


        ProcurementClient procurementClient = new ProcurementClient();

        List<ProcurementContract> contractList =    
       procurementClient.GetContractList(Convert.ToInt32(ID), null);
        contractList = contractList.Where(i => i.Status == 4).ToList();
        ddlContracts.DataSource = contractList;
        ddlContracts.DataTextField = "ContractIDName";
        ddlContracts.DataValueField = "ContractID";
        ddlContracts.DataBind();
        ddlContracts.Items.Insert(0, "");
    }

}

受保护的无效ddlVendor\u SelectedIndexChanged(对象发送方,事件参数e)
{
列表供应商列表=新列表();
供应商列表=(列表)视图状态[“供应商列表”];
string ID=string.Empty;
string accountID=string.Empty;
int?accountType=null;
如果(ddlventor.SelectedIndex>0)
{
ID=ddlvindor.SelectedValue;
ProcurementClient ProcurementClient=新ProcurementClient();
列表合同列表=
procurementClient.GetContractList(转换为32(ID),空);
contractList=contractList.Where(i=>i.Status==4.ToList();
ddlContracts.DataSource=合同列表;
ddlContracts.DataTextField=“contractdname”;
ddlContracts.DataValueField=“contractd”;
ddl.DataBind();
合同。项目。插入(0,“”;
}
}
试试这个

<asp:dropdownlist id=ddltrim width="100%" Runat="server" AutoPostBack="True" EnableViewState="True" onselectedindexchanged="ddltrim_SelectedIndexChanged">

确保您的DropDownList在Fom标签内

<form>

//

</form>

//

亲爱的检查原因验证=false

也许这就是问题所在 如果您的页面中有任何验证,亲爱的

谢谢


:D

如果要从数据库中填充下拉列表,请确保只有当下拉列表的DataBind()方法不是作为

protected void Page_Load(object sender, EventArgs e)
{
...
       If(!Page.IsPostBack)
       {
             ......
             dropdownlist.DataBind();
             .....
       }
...
}

希望这有帮助:)

下拉列表中添加以下属性

1.ViewStateMode=“Enabled”

2.EnableViewState=“true”


3.AutoPostBack=“true”

能否显示您的代码?此控件是否在updatepanel中?如果是,请设置EnableViewState=true并检查。
Page\u Load
将始终以回发方式命中,您是否可以通过编辑问题来回发代码,那么肯定存在一些验证错误!为ddl分配一个唯一的ValidationGroup,并查看它是否开始回发,如果开始回发,则在出现验证器的某个地方,在page指令中检查它们start EnableViewState=“true”,formDropdownlist位于asp.net页面内