什么时候触发gridView更新?

时间:2011-08-19 13:21:48

标签: asp.net gridview

我问了一个我想解决的问题Gridview is not displayed when using stored procedure in SQLDatasource。基于我的旧问题,我不确定究竟是什么时候触发了gridView更新。我的印象是

  • 在加载页面时自动触发Gridview更新如果在SQLDatasource中使用SQL语句

  • 需要使用sqldatasource.databind()函数手动绑定GridView,以便在使用存储过程时更新数据

但即便如此,第二种情况对我不起作用。我知道这个实现有些错误。任何人都可以指导我抛出这个,当Gridview更新时可能会对我原来的问题有所了解吗?

谢谢!


更新:经过进一步研究,我发现更新gridView需要databind()属性而不是。我们需要的是一个回发后。因此,如果您添加一个没有代码的按钮,它将更新gridView,因为页面已经重新发布,并且(可能)文本字段值也已更改。

我仍然没有得到任何结果。我所做的是在gridview的空模板中输入“not data found”。所以现在我得到“未找到数据”而不是什么。这意味着SP运行但返回0结果。

我发现的另一件事是,如果将文本字段绑定到SQLDataSource,默认情况下,它会将空文本框值更改为NULL。这有点愚蠢,为什么你需要NULL值?这将导致0记录,因为我们不会在数据库中存储null。 (Null除了微软之外别无他物)。所以要解决这个问题,请转到SQL Datasource中的参数列表并选择参数。单击链接“显示高级属性”将属性“ConvertEmptyStringToNull”从true更改为false。虽然它还没有解决我的问题(但在其他地方修复了)。

我在想我在sqlprocedure中使用4个参数,其中一个引起了问题?但是在SQLDatasource中进行测试时查询不正常。

2 个答案:

答案 0 :(得分:0)

必须使用GridView更新事件的原因是什么?为什么不在Page_Load事件期间添加代码来绑定GridView?您是否至少试图缩小导致错误行为的原因?

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
         SqlDataSource1.DataBind();
    }
}

答案 1 :(得分:0)

经过我的研究,我发现GridView会在页面加载时自动更新。在SQLDataSource中使用SQL语句或存储过程是相同的天气。此外,不需要SDQDatasource.Databind(),但在特殊情况下可能需要它。

触发GridView更新的是页面加载。如果您创建一个按钮并添加一个单击事件,只需单击该按钮将自动导致gridview更新,但是clickevent会导致页面重新加载。

希望有所帮助