protected void Page_Load(object sender, EventArgs e)
{
bindbranches();
bindbranches1();
}
public void bindbranches()
{
DataTable dtbranch = new DataTable();
dtbranch = objsupplyBAL.getbrnch();
ddlbranch.DataSource = dtbranch;
ddlbranch.DataBind();
ddlbranch.Items.Add(new ListItem("--select--", "0"));
ddlbranch.SelectedIndex = ddlbranch.Items.Count - 1;
}
public void bindbranches1()
{
DataTable dt = new DataTable();
dt = objsupplyBAL.getbrnch();
ddlbranch1.DataSource = dt;
ddlbranch1.DataBind();
ddlbranch1.Items.Add(new ListItem("--select--", "0"));
ddlbranch1.SelectedIndex = ddlbranch1.Items.Count - 1;
}
如果没有刷新,我的下拉列表就没有绑定。如果我选择一个下拉列表,则另一个令人耳目一新。我必须为我的代码添加额外内容。任何人都可以告诉......
答案 0 :(得分:3)
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
bindbranches();
bindbranches1();
}
}
如果你添加这个...它的工作正常......首先尝试这个......
答案 1 :(得分:1)
发生这种情况的原因是每次页面回发时都在运行代码,请尝试以下操作只填充一次项目(在初始页面加载时):
protected void Page_Load(object sender, EventArgs e) {
if (!this.IsPostBack) {
bindbranches();
bindbranches1();
}
}
或者您也可以处理Page.Init
事件来运行此代码,这将在首次加载页面时更改下拉列表,并在后续回发中保留值:
protected void Page_Init(object sender, EventArgs e) {
bindbranches();
bindbranches1();
}
如果您希望第二个下拉列表仅在选择第一个项目时刷新,请尝试以下解决方案:
protected void ddlbranch_SelectedIndexChanged(object sender, EventArgs e) {
bindbranches1();
}
将ddlbranch_SelectedIndexChanged
绑定到ddlbranch控件的选定索引更改事件。这将仅在最初加载页面时以及当用户从ddlbranch下拉列表中选择项目时运行代码
答案 2 :(得分:0)
如果要在更改一个下拉列表时填充另一个下拉列表,则必须将下拉列表的AutoPostBack属性设置为true,以便更改事件将开始执行
Loot @ http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.autopostback.aspx