下拉列表在回发时初始化输入类型=“文本”

时间:2013-05-18 14:18:15

标签: c# html asp.net postback

我有几个文本框<input type="text">以及一个下拉列表<asp:DropDownList> 我更喜欢使用这个asp控件,因为我想将它与数据绑定。事情是每次我做出选择时,文本框会因回发而重新初始化。

<asp:DropDownList ID="drpPleaseSelect" runat="server" OnSelectedIndexChanged="drpPleaseSelect_SelectedIndexChanged" AutoPostBack="True" >
                    <asp:ListItem>[Please Select Yes Or No]</asp:ListItem>
                    <asp:ListItem>Yes</asp:ListItem>
                    <asp:ListItem>No</asp:ListItem>
                </asp:DropDownList>

<input type="text" runat="server" id="txtLastName" onkeyup="checkTextBoxes()" onfocus="checkTextBoxes()" />

protected void drpPleaseSelect_SelectedIndexChanged(object sender, EventArgs e)
{
    var valueDropdown = drpPleaseSelect.SelectedValue.ToString();
    if (valueDropdown == "[Please Select Yes Or No]")
    {
        labChkDropDown.InnerHtml = "Please select yes Or no";
    }
    else if (valueDropdown == "Yes" || valueDropdown == "No")
    {
        //bind a different asp:dropdownlist with database data
    }
}

有没有办法让我的html文本框不受回发影响,因为我更改了下拉列表的索引?

1 个答案:

答案 0 :(得分:1)

你说每次选择文本框重新初始化时,你是在PageLoad上设置它们还是从PageLoad调用的函数?

如果是这种情况,我认为您错过了对IsPostback的检查:

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
    //Do stuff that you only want done on the inital page load.
    //Like setting up inital values in textboxes, etc.
  }
}