Laden...

DataGrid an dataSource in .aspx anbinden

Erstellt von chritian vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.021 Views
C
chritian Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren
DataGrid an dataSource in .aspx anbinden

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

N
4.644 Beiträge seit 2004
vor 17 Jahren

Was heißt funktioniert nicht?

Hast Du mal im Debugger geschaut, ob Deine Table überhaupt gefüllt ist?

C
chritian Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren

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...

C
chritian Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren
code beispiel

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();

      }

3.170 Beiträge seit 2006
vor 17 Jahren

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

C
chritian Themenstarter:in
34 Beiträge seit 2006
vor 17 Jahren

Stimmt!!!! danke....- oh mann ich hatte "Inherits" umbenannt....