【发布时间】:2017-10-03 07:08:58
【问题描述】:
我有两个名为 dl_bankName,dl_branch 的下拉列表,一个名为 txt_bankCode.dl_bankName 的文本框将在 pageLoad 上填充,dl_branch 将在 dl_bankName 的 selectedIndexChange 上填充,而 txt_bankCode 将在 dl_branch 的 selectedIndexChange 上填充。 dl_bankName 已填充,即使在 postBack 后仍保留所选值,但当我们选择其他值时,dl_branch name 会更改为第一个值。
我的示例代码如下
HTML
<asp:DropDownList ID="dl_bankName" runat="server" Width="230px"
Height="22px" AutoPostBack="True" onselectedindexchanged="dl_bankName_SelectedIndexChanged"> </asp:DropDownList>
<asp:DropDownList ID="dl_BranchName" Width="230px" Height="22px" runat="server"
onselectedindexchanged="dl_BranchName_SelectedIndexChanged"
AutoPostBack="True"></asp:DropDownList>
<asp:TextBox ID="txt_IfscMicr" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="txt_IfscMicr" runat="server" ID="RequiredFieldValidator9" ErrorMessage="*" Font-Size="Large" ForeColor="#FF5050" />
代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
filldl_bankName();
}
}
protected void dl_bankName_SelectedIndexChanged(object sender, EventArgs e)
{
if (dl_BranchName.DataSource == null)
{
filldl_BranchName();
}
txt_IfscMicr.Text = "";
}
protected void dl_BranchName_SelectedIndexChanged(object sender, EventArgs e)
{
filltxt_IfscMicr();
}
protected void filldl_bankName()
{
string query = "select '--Select--' as bank_name,'0' as bank_code from DUAL union all select distinct(bank_name),bank_code from em_bank_details ";
dl_bankName.DataSource = GetDt(query);
dl_bankName.DataTextField = "bank_name";
dl_bankName.DataValueField = "bank_code";
dl_bankName.DataBind();
}
protected void filldl_BranchName()
{
string query = "select '--Select--' as branch_name,'0' as bank_code from DUAL union all select distinct(branch_name),bank_code from em_bank_details where bank_name='" + dl_bankName.SelectedItem.Text + "'";
dl_BranchName.DataSource = GetDt(query);
dl_BranchName.DataTextField = "branch_name";
dl_BranchName.DataValueField = "bank_code";
dl_BranchName.DataBind();
}
protected void filltxt_IfscMicr()
{
string query = "select distinct(branch_code),bank_code from em_bank_details where bank_name='" + dl_bankName.SelectedItem.Text + "' and branch_name='" + dl_BranchName.SelectedItem.Text + "'";
txt_IfscMicr.Text = GetDt(query).Rows[0]["branch_code"].ToString();
}
【问题讨论】:
-
尝试 javascript onchange 事件来调用你的函数
-
先设置
dl_BranchName.Enabled = false;再设置dl_BranchName.Enabled = true ;有什么意义? -
@mmushtaq 我已经编辑了代码
-
@NasiruddinSaiyed 我的 JavaScript 不太好,但我会试一试并告诉你。