Ich habe wirklich seltsame Situation. Ich habe neue Aspx-Seite erstellt, und ohne ANY benutzerdefinierte Logikobjekte (alles mit Visual Studio-Assistenten erstellt) versucht, Rasteransicht von sqldatasource zu erstellen.leere gridview obwohl die sqldatasource Werte hat
Die Daten stammen aus der gespeicherten Prozedur, wobei ein einzelner Parameter den Standardwert hat. Wenn ich das Schema aktualisiere oder auf "Testabfrage" klicke, werden Ergebniszeilen und GridViews-Felder korrekt erstellt. Aber wenn ich die Seite ausführe, gibt es keine Rasteransicht (es ist einfach leer - wenn ich EmptyDataTemplate hinzufüge, wird es angezeigt). Ich habe benutzerdefinierte (leere) Funktion und DataBind, DataBinded und RowCreted-Ereignis hinzugefügt, und nur Databind und DataVound-Ereignisse ausgelöst (obwohl, wie ich schrieb - die gespeicherte Prozedur mit dem Standardparameter Zeilen und .net können sie im Entwurfsmodus lesen)
Es gibt nichts "Phantasie" in der Prozedur, ich habe dies mehr als einmal ohne Probleme getan. Ich habe eine andere gespeicherte Prozedur Weicht Werke in unserer Produktion env versucht und immer noch den gleichen emty gridview
hier ist der Code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TEST.aspx.cs" Inherits="site.TEST" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"
AllowSorting="True" OnDataBinding="GridView1_DataBinding" OnDataBound="GridView1_DataBound"
OnRowCreated="GridView1_RowCreated">
<EmptyDataTemplate>
No Data Available
</EmptyDataTemplate>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
SelectCommand="myStoredProcedure" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="val1" Name="par1" Type="String" />
<asp:Parameter Name="val2" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
und der Code-Behind
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace site
{
public partial class TEST : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{//brake here
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{//brake here
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{//brake here
}
protected void GridView1_DataBound(object sender, EventArgs e)
{//brake here
}
}
}
Sie können sich nicht vorstellen, wie dankbar ich bin :) – SimSimY
+1 Sie haben mir gerade ein paar Stunden gerettet! :) – meda
Danke. 6 Jahre später, hast du mir geholfen :-) Nicht sicher, warum MS diese Vor-Ort-Sache zu Chaos macht. –