Hi,
ich will ein Datagrid auf einer .aspx Seite ausgeben.
Als datasource will ich eine DataTable verwenden, die ich in der .aspx.cs bearbeitet.
Nun krieg ichs einfach nicht hin die dataTable an das dataGrid anzubinden.
Ich hab gegooglt und folgende 3 Lösungen versucht, wobei keine klappt...
1.) in der .aspx über die Methode Page_load die DataSource angeben:
<% @Import Namespace = "HWS" %>
<% @Import Namespace = System.Data %>
<% @Import Namespace = System.Web.UI.WebControls %>
<script runat="server">
void Page_load(object sender, EventArgs e)
{
Class1 class1 = new Class1();
DataTable datTable = class1.getTable();
this.DataGrid1.DataSource = datTable;
DataBind();
}
2.) in der .aspx im HTML (Variable) die Datatable als source angeben
<% @Import Namespace = "HWS" %>
<% @Import Namespace = System.Data %>
<% @Import Namespace = System.Web.UI.WebControls %>
<script runat="server">
DataTable datTable;
void Page_load(object sender, EventArgs e)
{
Class1 class1 = new Class1();
DataTable datTable = class1.getTable();
}
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 384px; POSITION: absolute; TOP: 240px" runat="server" DataSource="<%# datTable %>">
3.) in der Codebehind aspx.cs die datasource angeben:
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Data.DataTable dataTable;
private void Page_Load(object sender, System.EventArgs e)
{
Class1 class1 = new Class1();
DataTable testTable = class1.getTable();
this.DataGrid1.DataSource = testTable;
}
}
ABER nichts funktioniert.....
Danke für die Hilfe!!!
chritian
Was heißt funktioniert nicht?
Hast Du mal im Debugger geschaut, ob Deine Table überhaupt gefüllt ist?
Danke,
aber die table ist gefüllt.
ich hab jetzt noch die daten über die
ICollection Schnittstelle gebunden... jetzt funktionierts. ist aber nicht sonderlich elegant.
ich stell den code nachher auch noch rein - grad hab ich probleme mit dem netz...
so jetzt der code. funktioniert find ich aber nicht toll.
würde alles lieber über die aspx.cs machen - da tuts aber nicht......
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Threading" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="HWS" %>
<HTML>
<script runat="server">
ICollection CreateDataSource()
{
// Create sample data for the DataGrid
connectdatabase connDatabase = new connectdatabase();
DataTable dt = new DataTable();
dt.TableName = "tableAusgabe";
//Lade die Tabelle
dt = connDatabase.getTable();
DataView dataview = new DataView(dt);
return dataview;
}
void Page_Load(Object sender, EventArgs e)
{
// Load sample data only once, when the page is first loaded.
if (!IsPostBack)
{
//DataGrid ItemsGrid
ItemsGrid.DataSource= CreateDataSource();
ItemsGrid.DataBind();
}
Hallo,
Das muss eigentlich auch in der aspx.cs gehen. Dafür musst Du allerdings darauf achten, der <%@ Page %> - Direktive die richtigen Attribute "CodeBehind" und "Inherits" zu geben.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca