Hi @ all,
hoffentlich kann mir jemand helfen. Ich habe folgendes Problem. Ich will ein DataGrid basteln das man bearbeiten kann. So hier ist der Quellcode:
Code:
--------------------------------------------------------------------------------
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<%@ Page Language="c#" Debug="true" CodeBehind="Update1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication2.Update1" %>
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.OleDb" %>
<script language="C#" runat="server">
OleDbConnection conn;
void Page_Load(object sender, EventArgs e)
{
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=c:\inetpub\wwwroot\aspnet\books.mdb");
conn.Open();
if(!IsPostBack)
BindData();
}
void Page_Unload(object sender, EventArgs e)
{
conn.Close();
}
void BindData()
{
string SQL = "SELECT * FROM Authors";
OleDbCommand cmd = new OleDbCommand(SQL, conn);
dg.DataSource = cmd.ExecuteReader();
DataBind();
}
void dg_Edit(object sender, DataGridCommandEventArgs e)
{
dg.EditItemIndex = e.Item.ItemIndex;
BindData();
}
void dg_Cancel(object sender, DataGridCommandEventArgs e)
{
dg.EditItemIndex = -1;
BindData();
}
void dg_Update(object sender, DataGridCommandEventArgs e)
{
TextBox tb_fn = (TextBox) e.Item.Cells[0].Controls[0];
TextBox tb_ln = (TextBox) e.Item.Cells[1].Controls[0];
string SQL = "UPDATE Authors SET Firstname='"
+ tb_fn.Text + "', Lastname='" + tb_ln.Text
+ "' WHERE ID=" + dg.DataKeys[e.Item.ItemIndex] + ";";
OleDbCommand cmd = new OleDbCommand(SQL, conn);
cmd.ExecuteNonQuery();
dg.EditItemIndex = -1;
BindData();
}
</script>
<form runat="server">
<ASPataGrid id="dg" runat="server" AutoGenerateColumns="false" DataKeyField="ID" OnEditCommand="dg_Edit"
OnCancelCommand="dg_Cancel" OnUpdateCommand="dg_Update">
<Columns>
<ASP:BoundColumn HeaderText="Vorname" DataField="Firstname" />
<ASP:BoundColumn HeaderText="Nachname" DataField="Lastname" />
<ASP:EditCommandColumn EditText="Bearbeiten" CancelText="Abbrechen" UpdateText="Übernehmen" />
</Columns>
</ASPataGrid>
</form>
--------------------------------------------------------------------------------
Nun gibt er mir aber folgende Fehler aus:
C:\Inetpub\wwwroot\WebApplication2\Update1.aspx(63): Das Element 'Columns' wird vom aktiven Schema nicht unterstützt.
C:\Inetpub\wwwroot\WebApplication2\Update1.aspx(1): Dem aktiven Schema zufolge muss das Element 'meta' in einem übergeordneten Element enthalten sein.
C:\Inetpub\wwwroot\WebApplication2\Update1.aspx(60): Dem aktiven Schema zufolge muss das Element 'form' in einem übergeordneten Element enthalten sein.
Was bedeutet das und wie kann ich es ändern, daß alles . Denn wenn ich das Prog ausführen lasse, geht das so weit, aber es wird nichts angezeigt! Es kommt halt eine leere Seite!
Grüße
Basti
hoffentlich kann mir jemand helfen. Ich habe folgendes Problem. Ich will ein DataGrid basteln das man bearbeiten kann. So hier ist der Quellcode:
Code:
--------------------------------------------------------------------------------
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<%@ Page Language="c#" Debug="true" CodeBehind="Update1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication2.Update1" %>
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.OleDb" %>
<script language="C#" runat="server">
OleDbConnection conn;
void Page_Load(object sender, EventArgs e)
{
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=c:\inetpub\wwwroot\aspnet\books.mdb");
conn.Open();
if(!IsPostBack)
BindData();
}
void Page_Unload(object sender, EventArgs e)
{
conn.Close();
}
void BindData()
{
string SQL = "SELECT * FROM Authors";
OleDbCommand cmd = new OleDbCommand(SQL, conn);
dg.DataSource = cmd.ExecuteReader();
DataBind();
}
void dg_Edit(object sender, DataGridCommandEventArgs e)
{
dg.EditItemIndex = e.Item.ItemIndex;
BindData();
}
void dg_Cancel(object sender, DataGridCommandEventArgs e)
{
dg.EditItemIndex = -1;
BindData();
}
void dg_Update(object sender, DataGridCommandEventArgs e)
{
TextBox tb_fn = (TextBox) e.Item.Cells[0].Controls[0];
TextBox tb_ln = (TextBox) e.Item.Cells[1].Controls[0];
string SQL = "UPDATE Authors SET Firstname='"
+ tb_fn.Text + "', Lastname='" + tb_ln.Text
+ "' WHERE ID=" + dg.DataKeys[e.Item.ItemIndex] + ";";
OleDbCommand cmd = new OleDbCommand(SQL, conn);
cmd.ExecuteNonQuery();
dg.EditItemIndex = -1;
BindData();
}
</script>
<form runat="server">
<ASPataGrid id="dg" runat="server" AutoGenerateColumns="false" DataKeyField="ID" OnEditCommand="dg_Edit"
OnCancelCommand="dg_Cancel" OnUpdateCommand="dg_Update">
<Columns>
<ASP:BoundColumn HeaderText="Vorname" DataField="Firstname" />
<ASP:BoundColumn HeaderText="Nachname" DataField="Lastname" />
<ASP:EditCommandColumn EditText="Bearbeiten" CancelText="Abbrechen" UpdateText="Übernehmen" />
</Columns>
</ASPataGrid>
</form>
--------------------------------------------------------------------------------
Nun gibt er mir aber folgende Fehler aus:
C:\Inetpub\wwwroot\WebApplication2\Update1.aspx(63): Das Element 'Columns' wird vom aktiven Schema nicht unterstützt.
C:\Inetpub\wwwroot\WebApplication2\Update1.aspx(1): Dem aktiven Schema zufolge muss das Element 'meta' in einem übergeordneten Element enthalten sein.
C:\Inetpub\wwwroot\WebApplication2\Update1.aspx(60): Dem aktiven Schema zufolge muss das Element 'form' in einem übergeordneten Element enthalten sein.
Was bedeutet das und wie kann ich es ändern, daß alles . Denn wenn ich das Prog ausführen lasse, geht das so weit, aber es wird nichts angezeigt! Es kommt halt eine leere Seite!
Grüße
Basti