2012-05-30 96 views
2

我有以下.aspx頁面。我正在搜索數據庫中的單詞,一切正常。如果單詞在數據庫中不存在,我也有一個HyperLink顯示一條消息。必須按兩次Enter才能正常工作C#

但唯一的問題是,當我搜索該單詞,並且該單詞不在數據庫中時,它不會從第一次顯示HyperLink,我必須點擊兩次ENTER鍵才能正常工作,並單擊CLEAR兩次因爲它消失了。

我知道問題是我有page_load後面的按鈕,但我找不到解決方案。我試過的是創建另一個函數private void load_data()並將所有內容從page_load複製到它。並在load_page和button2_click中調用load_data();它不起作用。

下面的代碼:

namespace TRI_Portal.ScreenPop.Gloss 
{ 
    public partial class Gloss_Test : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (GridView2.Rows.Count == 0) 
      { 

       HyperLink1.Visible = true; 
      } 

      else 
      { 
       HyperLink1.Visible = false; 
      } 

      String s = Request.QueryString["language"]; 

      Language1.Text = Server.HtmlEncode(s); 

     }  

     } 
    } 

我已經嘗試了這個爲好,但沒有運氣。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      SetLink(); 
     } 
    } 
    private void SetLink() 
    { 
     if (GridView2.Rows.Count == 0) 
     { 

      HyperLink1.Visible = true; 
     } 

     else 
     { 
      HyperLink1.Visible = false; 
     } 

     String s = Request.QueryString["language"]; 

     Language1.Text = Server.HtmlEncode(s); 
    } 
    protected void Button2_Click(object sender, EventArgs e) 
    { 
     SetLink(); 
    } 

有什麼建議嗎?

回答

1

手柄GridView.DataBound事件

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    SetLink(); 
} 

和標記:

<asp:GridView OnDataBound="GridView1_DataBound" .... 

從Page_Load事件刪除代碼。

+0

我試過你的建議。但沒有任何變化。這是我的代碼。我可能會做錯事。 protected void GridView2_DataBound(object sender,EventArgs e) { label(); } 私人無效標籤() { 如果(GridView2.Rows.Count == 0){ HyperLink1.Visible = TRUE; } else { HyperLink1.Visible = false; } String s = Request.QueryString [「language」]; Language1.Text = Server.HtmlEncode(s); } – smr5

+0

您可以編輯該問題,很難閱讀代碼 –

+0

我希望你也可以在標記中設置處理程序 –

相關問題