2
我的代碼在Chrome和Firefox中工作正常,但我的代碼在IE中混亂(因爲IE?)。由於我的工作場所,功能必須在IE中運行。如何保持下拉列表的SelectIndexChanged方法不被觸發?
我有一個下拉列表:
<asp:DropDownList ID="ddlistCategories" runat="server" Width="425px" DataSourceID="SqlDataSource1" DataTextField="productLine" DataValueField="productLine" AutoPostBack="True" OnDataBound="ddlistCategories_DataBound" CssClass="myTextbox" OnSelectedIndexChanged="ddlistCategories_SelectedIndexChanged">
和方法:
protected void ddlistCategories_SelectedIndexChanged(object sender, EventArgs e)
{
if ((!IsPostBack && !((DropDownList)sender).SelectedIndex.ToString().Equals("-1"))
|| (!Request.RawUrl.Contains("?")))
Response.Redirect(String.Format("default.aspx?searchIndex={0}&selectedBrand={1}",
HttpUtility.HtmlEncode(((DropDownList)sender).SelectedIndex.ToString()),
HttpUtility.HtmlEncode(((DropDownList)sender).SelectedValue.ToString())));
}
我不得不創建一個非常醜陋的if語句,因爲ddlistCategories_SelectedIndexChanged
被稱爲每當我點擊此按鈕:
<asp:LinkButton ID="btnSubmitItems" runat="server" CssClass="myButton" Text="Search" OnClick="btnSubmitItems_Click"></asp:LinkButton>
with onclick:
protected void btnSubmitItems_Click(object sender, EventArgs e)
{
if (txtItems.Text.Equals(""))
{
Session["message"] += "<div class='status-warning'>Must select items!</div>";
Response.Redirect("default.aspx");
}
else
Response.Redirect(HttpUtility.HtmlEncode("default.aspx?searchIndex=-1")
+ "&searchItems=" + HttpUtility.HtmlEncode(txtItems.Text));
我該如何獲得ddlistCategories_SelectedIndexChanged
,我甚至沒有打電話過來?根據要求
Page_Load方法:
if (IsPostBack == false)
{
string[] recs = MyQuery.QueryGetDropDownString(sqlDsItemNums.ConnectionString,
sqlDsItemNums.SelectCommand).Split('|');
List<MyListItem> tempRecords = new List<MyListItem>();
foreach (string rec in recs)
{
try
{
tempRecords.Add(new MyListItem(rec.Split((char)252)[1], rec.Split((char)252)[0]));
}
catch (Exception ex)
{
lblError.Text = "<div style='color: red'> Error: " + ex.Message + "</div>";
}
}
Session["itemList"] = tempRecords;
}
lblStatus.Text = "";
int cartCount = DownloadCart.GetCount(User.Identity.Name, sqlDsDlCart.ConnectionString);
if (cartCount > 0)
{
checkout.Visible = true;
checkoutBtn2.Visible = true;
}
try
{
lblStatus.Text = Session["message"].ToString();
lblStatus.Visible = true;
Session["message"] = "";
}
catch { }
我厭倦了,所以我決定只讓我的if語句有點醜陋:
protected void ddlistCategories_SelectedIndexChanged(object sender, EventArgs e)
{
if ((!IsPostBack && !((DropDownList)sender).SelectedIndex.ToString().Equals("-1"))
|| (!Request.RawUrl.Contains("?") && (((DropDownList)sender).SelectedIndex != 0)))
Response.Redirect(String.Format("default.aspx?searchIndex={0}&selectedBrand={1}",
HttpUtility.HtmlEncode(((DropDownList)sender).SelectedIndex.ToString()),
HttpUtility.HtmlEncode(((DropDownList)sender).SelectedValue.ToString())));
}
Page_Load是什麼樣子的?它是否設置回傳項目? – ahwm
我添加了page_load方法 –
是的,我不確定這一點。問題是隻有IE瀏覽器,我想知道如果IE瀏覽器以某種方式改變下拉列表,但我從來沒有見過這樣做,所以我不知道。 – ahwm