【问题标题】:Have to press Enter Twice for a function to work C#必须按两次 Enter 才能使函数工作 C#
【发布时间】:2012-06-04 22:26:50
【问题描述】:

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

但唯一的问题是,当我搜索该单词并且该单词不在数据库中时,它不会从第一次显示 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();
    }

有什么建议吗?

【问题讨论】:

    标签: asp.net function enter


    【解决方案1】:

    处理 GridView.DataBound 事件

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

    和标记:

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

    从 Page_Load 事件中删除代码。

    【讨论】:

    • 我已经尝试了你的建议。但一切都没有改变。这是我的代码。我可能做错了什么。 protected void GridView2_DataBound(object sender, EventArgs e) { label(); } private void label() { if (GridView2.Rows.Count == 0) { HyperLink1.Visible = true; } else { HyperLink1.Visible = false; } String s = Request.QueryString["language"]; Language1.Text = Server.HtmlEncode(s); }
    • 这对我不起作用。但是我在emptydatatemplate中找到了解决方案。
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多