【发布时间】:2011-08-19 13:21:48
【问题描述】:
我问了一个我想解决的问题Gridview is not displayed when using stored procedure in SQLDatasource。根据我的老问题,我不确定何时触发 gridView 更新。我有印象
加载页面时会自动触发 Gridview 更新如果您在 SQLDatasource 中使用 SQL 语句
GridView需要使用sqldatasource.databind()函数手动绑定更新数据如果你使用存储过程。
但即便如此,第二种情况也不适合我。我知道这个实现有些错误。任何人都可以指导我抛出这个,当 Gridview 准确更新时,也可能对我原来的问题有所启发?
谢谢!
更新:经过进一步研究,我发现databind() 属性不需要 来更新gridView。需要的是回发。因此,如果您在其中添加一个没有代码的按钮,它将更新 gridView,因为页面已被重新发布并且(可能)文本字段值也已更改。
我仍然没有得到任何结果。我所做的是在gridview的空模板中输入“未找到数据”。所以现在我得到“找不到数据”而不是什么都没有。这确实意味着 SP 已运行但返回 0 结果。
我发现的另一件事是,如果您将文本字段绑定到 SQLDataSource,默认情况下,它会将空文本框的值更改为 NULL。这有点愚蠢,为什么需要 NULL 值?这将导致 0 条记录,因为显然我们不会在数据库中存储空值。 (Null 意味着除了微软之外什么都没有)。因此,要解决此问题,请转到 SQL 数据源中的参数列表并选择参数。单击链接“显示高级属性” 将属性“ConvertEmptyStringToNull”从 true 更改为 false。虽然它还没有解决我的问题(但在其他地方修复了它)。
我在想我在 sqlprocedure 中使用了 4 个参数,其中一个导致了问题?但是在 SQLDatasource 中测试时查询不正常。
【问题讨论】: