0

我有几个文本框<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 文本框不受回发的影响?

4

1 回答 1

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.
  }
}
于 2013-05-18T14:29:36.190 回答