2

我有以下 .aspx 页面。我正在搜索数据库中的单词,一切正常。我还有一个超链接,如果数据库中不存在该词,它会显示一条消息。

但唯一的问题是当我搜索这个词并且这个词不在数据库中时,它从第一次开始就没有显示超链接,我必须点击两次才能让它工作,然后点击两次它才能消失.

我知道问题是我在 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();
    }

有什么建议么?

4

1 回答 1

1

处理 GridView.DataBound 事件

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

和标记:

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

从 Page_Load 事件中删除代码。

于 2012-05-30T21:27:20.430 回答