0
我在UpdatePanel中使用DropDownList。當用戶在文本框中寫入一些文本並單擊「開始」按鈕時,它會填充。asp:dropDownList datasource在提交後,當在ASP中聲明時爲空:UpdatePanel
XAML是如下:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="ODSearchTB" runat="server" ClientIDMode="Static"></asp:TextBox>
<asp:Button ID="ODFindButton"
class="btn btn-default goButton"
runat="server" Text="Go"
ClientIDMode="Static"
UseSubmitBehavior="False"
CausesValidation="False"
OnClick="ODFindButton_Click" /><br/>
<asp:DropDownList ID="ODSearchDDL" runat="server" Visible="False" AutoPostBack="True"></asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
和背後的代碼填寫在點擊DropDownList的:
protected void ODFindButton_Click(object sender, EventArgs e)
{
var res = ServiceUnitOfWork.MedicalOffices.FindMedicalOfficesByName(
ODSearchTB.Text,
doctor: false,
hospital: true,
service: false,
establishment: true);
List<LightMedicalOffice> source = getLightMedicalOffices(res.ToList());
ODSearchDDL.DataSource = source;
ODSearchDDL.DataTextField = "Name";
ODSearchDDL.DataValueField = "IdAddress";
ODSearchDDL.DataBind();
ODSearchDDL.Visible = true;
}
也能正常工作,數據源將正確地更新和DropDownList的將被填補,更新(在UpdatePanel中)沒有頁面重新加載。提交表單時出現問題:Page_Load
事件中的DropDownList爲空(數據源爲空),因此,當我到達Submit_Click
和CustomValidator_ServerValidate
事件時,我無法知道列表的選定值是什麼。
ViewState似乎在頁面和控件上都啓用。我不知道什麼會導致這樣的行爲。
不,我不知道。 I4ve嘗試使用'var val = dropdownlist.DataSource'在Page_Load的第一行捕獲值,並且在提交後此時它已經爲空。 – WizLiz
你爲什麼要捕獲數據源?如果你正在捕獲值:ODSearchDDL.SelectedValue。 –
嗯,我試圖捕獲dropDownList的任何屬性,它是空的,selectedvalue是「」。 – WizLiz