首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅在用户提交表单后才显示EmptyDataText?

如何仅在用户提交表单后才显示EmptyDataText?
EN

Stack Overflow用户
提问于 2012-06-05 23:39:43
回答 4查看 1.9K关注 0票数 0

我刚刚用ASP.NET创建了一个基本的微软在这里的演练网站。它有一个带有表单的页面,它接受一些文本输入,在此基础上运行一个数据库查询,并在GridView中得到结果。我将EmptyDataText属性添加到GridView中,以便在用户搜索不返回结果时显式显示用户。

除了一个例外,这一切都如预期的那样工作:

IIS显示我的EmptyDataText“没有找到结果”。甚至在提交搜索表单之前。

这违背了我使用EmptyDataText的目的,这就是向用户表明网页成功地提交了他们的搜索,但没有找到结果,而不是把他们的搜索结果扔到第二层。

例如,搜索无法找到的内容的用户将看到“未找到结果”。无论是在搜索之前还是之后,都没有发现任何结果。之后。前一种行为给人的印象是搜索不起作用。

如何将我的GridView配置为仅在提交搜索表单后才显示EmptyDataText

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-08 17:46:41

正如其他答案所建议的那样,GridView在用户进行搜索之前被绑定,因为它有一个DataSourceID属性。正如解释过的论MSDN一样,此属性导致GridView自动绑定到指定的源:

若要绑定到数据源控件,请将GridView控件的GridView属性设置为数据源控件的ID值。GridView控件自动绑定到指定的数据源控件,并可以利用数据源控件的功能执行排序、更新、删除和分页。这是绑定到数据的首选方法。

为了获得我想要的行为,我从GridView中删除了这个属性,而是在搜索表单的submit按钮中添加了一个OnClick属性。OnClick属性引用了仅在用户提交表单时才调用的方法BindGridView

该方法所做的就是使用与属性相同的值填充DataSourceID

代码语言:javascript
复制
public void BindGridView(object sender, EventArgs e)
{
    GridView1.DataSourceID = "DataSourceID1";
}
票数 0
EN

Stack Overflow用户

发布于 2012-06-06 05:09:26

您使用的是sql数据源,它将在加载页面时自动绑定。单击“搜索”按钮时,编程地绑定网格视图。

票数 2
EN

Stack Overflow用户

发布于 2012-06-05 23:52:53

在用户启动搜索之前不要绑定您的GridView。当您将GridView绑定到具有0条记录的数据源时,将显示EmptyDataText

很可能您正在将其绑定到Page_Load上。

编辑

在代码中执行DataBind()的地方(动作处理程序除外),删除它。您的DataBind()应该只出现在接收用户操作的处理程序中。

如果Visual正在使用自动绑定在幕后执行一些巫毒,则始终可以将网格默认为不可见的。当用户启动搜索时,使其可见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10906450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档