Asp.net 必须按Enter键两次才能使函数工作#
我有下面的.aspx页面。我正在搜索数据库中的单词,一切正常。我还有一个超链接,如果数据库中不存在这个词,它会显示一条消息 但唯一的问题是,当我搜索该单词时,该单词不在数据库中,它从第一次开始就没有显示超链接,我必须单击“输入”两次,它才能工作,单击“清除”两次,它才能消失 我知道问题是我在页面加载后有了按钮,但我找不到解决方法。我尝试的是创建另一个函数private void load_data(),并将page_load中的所有内容复制到其中。在load_页面和按钮2中单击call load_data();它不起作用 代码如下:Asp.net 必须按Enter键两次才能使函数工作#,asp.net,function,enter,Asp.net,Function,Enter,我有下面的.aspx页面。我正在搜索数据库中的单词,一切正常。我还有一个超链接,如果数据库中不存在这个词,它会显示一条消息 但唯一的问题是,当我搜索该单词时,该单词不在数据库中,它从第一次开始就没有显示超链接,我必须单击“输入”两次,它才能工作,单击“清除”两次,它才能消失 我知道问题是我在页面加载后有了按钮,但我找不到解决方法。我尝试的是创建另一个函数private void load_data(),并将page_load中的所有内容复制到其中。在load_页面和按钮2中单击call load
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();
}
有什么建议吗?处理GridView.DataBound事件
protected void GridView1_DataBound(object sender, EventArgs e)
{
SetLink();
}
和标记:
<asp:GridView OnDataBound="GridView1_DataBound" ....
我已经试过你的建议了。但一切都没有改变。这是我的密码。我可能做错了什么。受保护的void GridView2_数据绑定(对象发送方,事件参数e){label();}私有void label(){if(GridView2.Rows.Count==0){HyperLink1.Visible=true;}否则{HyperLink1.Visible=false;}字符串s=Request.QueryString[“language”];Language1.Text=Server.HtmlEncode;}对我不起作用。但我在emptydatatemplate中找到了解决方案。