我是ASP.NET的新手,並且遇到了在靜態DropDownList中獲取所選項目的問題。這是我的列表的結構:ASP.NET和C# - 獲取靜態DropDownList中的選定項目
<asp:DropDownList ID="txtGender" runat="server">
<asp:ListItem>Male</asp:ListItem>
<asp:ListItem>Female</asp:ListItem>
<asp:ListItem>Other</asp:ListItem>
<asp:ListItem>Rather not say</asp:ListItem>
</asp:DropDownList>
然後在我想選擇的項目的代碼,我用txtGender.SelectedItem
始終得到第一個項目作爲輸入。我有另一個DropDownList,我必須從數據庫中獲取項目,然後在調用DataBind()
之前使用IsPostBack
,它工作正常。所以我想知道如何在靜態DropDownList中使用IsPostBack
?請幫忙。
* EDITED
下面是方法,我用txtGender
:
protected void btnSave_Click(object sender, EventArgs e)
{
int uID= int.Parse(Session["uID"].ToString());
PhotoDataSetTableAdapters.MembersTableAdapter memAdap = new PhotoDataSetTableAdapters.MembersTableAdapter();
PhotoDataSet.MembersDataTable memTable = memAdap.GetMemberByID(uID);
DataRow[] dr = memTable.Select("userID = " + uID);
string Fname = memTable.AsEnumerable().Single().Field<String>("avatar");
if(PhotoUploader.HasFile)
{
Fname = Path.GetFileName(PhotoUploader.FileName);
PhotoUploader.SaveAs(Server.MapPath("~/avatar/") + Fname);
}
string newPass = memTable.AsEnumerable().Single().Field<String>("password");
if (txtPass.Text != "")
{
newPass = txtPass.Text;
}
string tmp = txtBday.Text;
DateTime bday = DateTime.ParseExact(tmp, "dd/MM/yyyy", null);
memAdap.UpdateMemberProfile(newPass, txtEmail.Text, txtRealname.Text, txtLocation.Text, txtGender.SelectedItem.Text, txtBio.Text, bday, Fname, uID);
//Response.Write(txtGender.SelectedItem.Text + " " + txtBio.Text);
Response.Redirect("Photostream.aspx");
}
PS:我嘗試使用Response.Write
看社會性別問題的輸入,但它總是列表的第一個項目被選中。即使一切看起來都沒問題,我也沒有輸入txtBio
。
你應該命名你的DropDownList'ddlGender'或者只是'gender'。 'txtGender'令人困惑。 –
請發佈您用於獲取靜態「DropDownList」的值的方法。 –
我用使用'DropDownList'的方法編輯了問題。你現在可以檢查它。 –