从数据库中的gridview记录为null时调用的方法

时间:2011-04-03 14:08:09

标签: asp.net sql-server gridview

我有一个gridview,它使用带有session [“UserName”]的存储过程作为参数来从数据库中检索记录。

以下是该gridview Sqldatasource的代码:

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:componentConnString %>"
    SelectCommand="SelectUserPreviousHistory" SelectCommandType="StoredProcedure">
    <SelectParameters>
        <asp:SessionParameter Name="userName" SessionField="UserName" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

假设已登录的特定用户在该表中没有执行此特定存储过程的任何记录。然后就不会有任何与gridview相关的记录。所以在这种情况下:是否有任何方法被执行或抛出一些异常,所以我可以显式使用该方法/异常/属性向用户显示消息标签,如“没有记录显示!!”

请帮帮我

BTW我正在使用vs 2008,c#,asp.net 在期待中感谢

3 个答案:

答案 0 :(得分:1)

问候    好吧,如果我找到了你,你需要向用户显示一个文本,告诉他们没有找到数据或其他东西

因此您可以在名为

的网格视图上使用属性
EmptyDataText = "no Data Found !" 

在HTML上设置它,例如

<asp:GridView ID="myGridView" EmptyDataText="No Data Found !" runat="server" >
        </asp:GridView>

另外要设置空数据文本字段或div的区域样式,如果你玩Visual Studio intellsince,你可以找到像

这样的
EmptyDataRowStyle-CssClass 

和其他人

如果对您有用,请不要忘记签署此答案是正确的:)

问候:)

答案 1 :(得分:0)

处理SQLDataSource的Selected事件以检查返回的记录数。例如:

protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e) {
    if(e.AffectedRows == 0)
        ClientScript.RegisterStartupScript(typeof(Page), "startUp", "alert(recordset is empty);", true);
}

答案 2 :(得分:0)

我的朋友我找到了一个解决方案,但是在绑定网格时它是服务器端,或者在完全绑定之后执行以下操作

//---- just an examply for binding grid with 0 rows [no data found]
    myGridView.DataSource = null; 
    myGridView.DataBind();
//----
myGridView.BorderWidth = ((myGridView.Rows.Count <= 0) ? (new Unit(0)) : (new Unit(1)));

感谢您的等待:)