我的問題非常靈活,所以我不知道這個問題的正確標題是什麼。我會盡力描述我的問題,希望你能明白,如果你不這樣,請問。DropDownList不會更改它的值
我在我的notice.aspx頁面中使用了DropDownList。
DropDownlist value: 1--> show notice in one day ago; 2--> 7 days ago;3--> 30 days ago.
<asp:DropDownList ID="DropDownListTime" runat="server" OnSelectedIndexChanged="IndexNotice_Changed"
AutoPostBack="true" >
<asp:ListItem Selected="True"></asp:ListItem>
<asp:ListItem Value="1"> 1 day ago </asp:ListItem>
<asp:ListItem Value="2"> 7 days ago </asp:ListItem>
<asp:ListItem Value="3"> 30 days ago </asp:ListItem>
</asp:DropDownList>
和代碼在notice.aspx.cs
private static string key;
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
BindData();
}
}
public void BindData()
{
string sql="";
if (string.IsNullOrEmpty(DropDownListTime.SelectedValue))
{
key = "3";
}
else
{
key = DropDownListTime.SelectedValue.ToString();
}
if(key.Equals("1"))
{
sql="select top 5 notice in 1 day ago...";//show
}
if(key.Equals("2"))
{
sql="select top 5 notice in 7 day ago...";
}
if(key.Equals("3"))
{
sql="select top 5 notice in 30 day ago...";
}
Datatable dt= excute(sql);
...
HyperLink1.NavigateUrl = string.Format("Allnotice.aspx?key={0}",key);// go to page to show all notices with `1 day`,`7days`,`30 days` ago depend on the `key`
}
public void IndexNotice_Changed(Object sender, EventArgs e)
{
BindData();
}
當我點擊Hyperlink1,關鍵是送花兒給人3;所以Allnotice.aspx頁面總是在30天前顯示通知。
我真的不知道爲什麼dropdownlist的值總是3. 在我的代碼中有沒有任何錯誤,請幫助!!!
UPDATE:
我已經刪除了行:private static string key;
並宣佈string key=""
在BindData()
它仍然有效錯誤。
看起來DropDownListTime.SelectedValue
沒有問題。當我調試時,我看到變量鍵是正確的(我的意思是我選擇的時間是正確的)。但是當我點擊超鏈接時,地址欄顯示key=3
。
幫助!!!
? –
我複製並粘貼了你的代碼,沒有看到任何錯誤,總是關鍵的變化如果我點擊其他選項 –
@Freak_Droid是的,我也是,當我點擊其他選項時,鍵改變,但是當我選擇一個選項,然後單擊HyperLink - >新的頁面打開與價值鍵= 3 –