我的问题非常灵活,所以我不知道这个问题的正确标题是什么。我会尽力描述我的问题,希望你能明白,如果你不这样,请问。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 –