Моя проблема настолько гибкая, поэтому я не знаю, что является правильным заголовком для этого вопроса. Я попытаюсь четко описать свою проблему, надеюсь, что вы поймете, если вы не спросите, пожалуйста, спросите.DropDownList не меняет его значение
Я использую DropDownList на моей странице notice.aspx.
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
.
Помощь !!!
Вы используете DropDownList для настройки, где HyperLink идет, или для отображения данных, или как? –
Я скопировал и вставил ваш код и не вижу никакой ошибки, всегда с изменением ключа. Если я нажимаю другую опцию. –
@Freak_Droid да, меня тоже, изменение ключа при нажатии другой опции, но когда я выбираю один параметр, а затем нажмите HyperLink -> открыта новая страница с ключом значения = 3 –