Normal
0
21
Hi,
ich hab ein problem mit einem formview und „meinem“ menu – beide zusammen in einer masterpage und das formview lässt sich nicht mehr updaten.
Ich hab jetzt schon alles durch aber mir fällt nichts mehr ein, das problem muss an meinem menu liegen.
Es ist natürlich keine xml zeug. Ich benutze eine repeater der sieht so aus:
<asp:Repeater id="parentRepeater" runat="server">
<itemtemplate>
<div id="LeftSidebarHead">
</div>
<br class="clearfloat" />
<h5 id="Überschrift5">
<b><%# Server.HtmlEncode((DataBinder.Eval(Container.DataItem, "MenuName")).ToString()) %></b>
</h5>
<br>
<asp:repeater id="childRepeater" runat="server" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %>' >
<itemtemplate>
<br class="clearfloat" />
<h4 id="UnterMenu">
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# ((DataBinder.Eval(Container.DataItem, "[\"Link\"]")).ToString())%>'><%# DataBinder.Eval(Container.DataItem, "[\"MenuName\"]")%></asp:HyperLink>
<br>
</h4>
<br>
</itemtemplate>
</asp:repeater>
<br /><br />
</itemtemplate>
</asp:Repeater>
der code dahinter:
protected void Page_Load(object sender, EventArgs e)
{
//Create the connection and DataAdapter for the table.
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["_1_0_0_0ConnectionString1"].ConnectionString);
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from Menu WHERE HMenu = 1 and Inaktiv = 0 ORDER BY Ranking", cnn);
//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds, "MenuName");
//Create a second DataAdapter for the Titles table.
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from Menu WHERE Inaktiv = 0 ORDER BY Ranking", cnn);
cmd2.Fill(ds, "MenuName2");
//Create the relation between the Authors and Titles tables.
ds.Relations.Add("myrelation",
ds.Tables["MenuName"].Columns["MenuName"],
ds.Tables["MenuName2"].Columns["ZuordungHMenu"]);
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["MenuName"];
Page.DataBind();
//Close the connection.
cnn.Close();
}
Für das formular hab ich eine einfache tabelle mit zwei werten - hier das formview:
<asp:Content ID="Content1" runat="server" contentplaceholderid="ContentPlaceHolder1">
<asp:FormView ID="FormView1" runat="server" AllowPaging="True"
DataKeyNames="ID" DataSourceID="TEST_Insert" DefaultMode="Edit">
<EditItemTemplate>
ID:
<asp:Label ID="IDLabel1" runat="server" Text='<%# Eval("ID") %>' />
<br />
Wert1:
<asp:TextBox ID="Wert1TextBox" runat="server" Text='<%# Bind("Wert1") %>' />
<br />
Wert2:
<asp:TextBox ID="Wert2TextBox" runat="server" Text='<%# Bind("Wert2") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Aktualisieren" />
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Abbrechen" />
</EditItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="TEST_Insert" runat="server"
ConnectionString="<%$ ConnectionStrings:_1_0_0_0ConnectionString1 %>"
DeleteCommand="DELETE FROM [TEST] WHERE [ID] = @ID"
InsertCommand="INSERT INTO [TEST] ([Wert1], [Wert2]) VALUES (@Wert1, @Wert2)"
SelectCommand="SELECT * FROM [TEST]"
UpdateCommand="UPDATE [TEST] SET [Wert1] = @Wert1, [Wert2] = @Wert2 WHERE [ID] = @ID">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int64" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Wert1" Type="String" />
<asp:Parameter Name="Wert2" Type="String" />
<asp:Parameter Name="ID" Type="Int64" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="Wert1" Type="String" />
<asp:Parameter Name="Wert2" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
</asp:Content>
Wenn ich das menu nicht lade also nicht auf der masterpage packe, läuft alles und ich kann wert ändern und eintragen.
Kann mir da jemand helfen ?
vwd 2008 asp.net 3.5 c#
sorry für die dumme frage - uni pdm halt ;-)