flere serverside forms på samme side: hvordan?
Vi samler flere user controls (ascx) på en side (aspx). på flere af disse user controls har vi <form runat="server">. når vi compilerer siden får vi den fejl at der kun kan være 1 serverside form på en side. Er der ikke en eller anden måde at komme rundt om dette på? det duer ikke med forskellig id/name eller lign.kan man evt samle i andet end aspx?
fungerende eksempel belønnes godt!
-------------------
opretopgave.ascx
--------------------
<%@ Import namespace = "System.Data.SqlClient" %>
<%@ Import namespace = "WeCSharp.DataBaseForbindelse" %>
<body MS_POSITIONING="GridLayout">
<TABLE height="882" cellSpacing="0" cellPadding="0" width="328" border="0" ms_2d_layout="TRUE">
<TR>
<TD width="0" height="0"></TD>
<TD width="10" height="0"></TD>
<TD width="318" height="0"></TD>
</TR>
<TR vAlign="top">
<TD width="0" height="15"></TD>
<TD colSpan="2" rowSpan="2">
<form action="opretopgave.aspx" id="formen" method="post" runat="server" name="navn2">
<TABLE height="311" cellSpacing="0" cellPadding="0" width="870" border="0" ms_2d_layout="TRUE">
<TR vAlign="top">
<TD width="10" height="15"></TD>
<TD width="860"></TD>
</TR>
<TR vAlign="top">
<TD height="55"></TD>
<TD>
<h1>Indrapporter opgave</h1>
</TD>
</TR>
<TR vAlign="top">
<TD height="41"></TD>
<TD>
<p>Indvolveret projekt:
<asp:DropDownList id="AlleProjekterListe" runat="server" /></p>
</TD>
</TR>
<TR vAlign="top">
<TD height="43"></TD>
<TD>
<p>Overskrift: <input id="Overskrift" type="text" size="20" runat="server" NAME="Overskrift"></p>
</TD>
</TR>
<TR vAlign="top">
<TD height="41"></TD>
<TD>
<p>Type af Opgave:
<asp:DropDownList id="AlleTypeOpgaverListe" runat="server" /></p>
</TD>
</TR>
<TR vAlign="top">
<TD height="91"></TD>
<TD>
<p>Beskrivelse: <textarea id="Beskrivelse" rows="4" cols="30" runat="server" NAME="Beskrivelse"></textarea></p>
</TD>
</TR>
<TR vAlign="top">
<TD height="25"></TD>
<TD>
<p><asp:Button runat="server" text="Enter" onclick="GemOpretOpgave" ID="Button1" /></p>
</TD>
</TR>
</TABLE>
</form>
</TD>
</TR>
<TR vAlign="top">
<TD width="0" height="867"></TD>
<TD>
<script language="C#" runat="server">
void GemOpretOpgave(object ob, System.EventArgs sea)
{
//Henter de indtastede værdier fra html dokumentet:
String overskrift = Overskrift.Value;
String projekt = AlleProjekterListe.SelectedItem.Text;
String type = AlleTypeOpgaverListe.SelectedItem.Text;
String beskrivelse = Beskrivelse.Value;
String indrapporteret = "01-02-2002";
//Opretter et DataBaseForbindelses Objekt:
DBForbindelse sqlServer = new DBForbindelse();
//Opretter Querryen til databasen:
sqlServer.aaben();
String strSQL = "INSERT INTO Opgave VALUES('" + "p00" + "','" + overskrift + "','" + projekt + "','" + type + "','" + beskrivelse + "','" + indrapporteret + "','" + "Indrapporteret" + "')";
sqlServer.setQuery(strSQL);
sqlServer.runQuery();
sqlServer.luk();
Response.Write("<h4>Opgaven er indrapporteret!</h4>");
}
void ListAlleProjekter(DBForbindelse sqlServer)
{
if(!IsPostBack)
{
sqlServer.aaben();
sqlServer.setQuery("SELECT Navn FROM Projekt");
SqlDataReader queryProjekter = sqlServer.runQuery();
ArrayList alleProjekter = new ArrayList();
while(queryProjekter.Read())
alleProjekter.Add(queryProjekter.GetString(0));
AlleProjekterListe.DataSource = alleProjekter;
AlleProjekterListe.DataBind();
sqlServer.luk();
}
}
void ListAlleTypeOpgave(DBForbindelse sqlServer)
{
if(!IsPostBack)
{
sqlServer.aaben();
sqlServer.setQuery("SELECT Type FROM TypeOpgave");
SqlDataReader queryTOpg = sqlServer.runQuery();
ArrayList tOpgListe = new ArrayList();
while(queryTOpg.Read())
tOpgListe.Add(queryTOpg.GetString(0));
AlleTypeOpgaverListe.DataSource = tOpgListe;
AlleTypeOpgaverListe.DataBind();
sqlServer.luk();
}
}
void Page_Load(object sender, System.EventArgs e)
{
//Opretter et DataBaseForbindelses Objekt:
DBForbindelse sqlServer = new DBForbindelse();
//Henter alle projekter og lister dem:
ListAlleProjekter(sqlServer);
//Henter alle TypeOpgaver og lister dem:
ListAlleTypeOpgave(sqlServer);
}
</script>
</TD>
</TR>
</TABLE>
</body>
--------------
Opretopgave.aspx
--------------
<%@ Page Language="cs" %>
<%@ Register TagPrefix="footer" TagName="footerindhold" Src="footer.ascx" %>
<%@ Register TagPrefix="header" TagName="headerindhold" Src="header.ascx" %>
<%@ Register TagPrefix="opgave" TagName="opret" Src="opretopgave.ascx" %>
<%@ Register TagPrefix="hoved" TagName="dynmenu" Src="menu.ascx" %>
<HTML>
<HEAD>
<title>Basset X-Bug</title>
</HEAD>
<body bgColor="#330000">
<header:headerindhold id="headerindhold1" runat="server"></header:headerindhold></TD>
<TABLE id="main" height="450" cellSpacing="0" cellPadding="0" width="800" border="0">
<tr>
<td bgcolor="#330000" width="20"></td> <!-- ramme 3 i venstre side -->
<td bgcolor="#ffffcc" width="100" valign="top" ><!-- her skal den dynamiske menu være -->
<hoved:dynmenu id="NogetTekst1" runat="server"></hoved:dynmenu></td>
<td bgcolor="#ffffcc" width="630" valign="top">
<opgave:opret id="opret" runat="server"></opgave:opret></td> <!-- Her skal indholdet af siden være --> <></TD> <!-- ramme 3 i højre side -->
</tr>
</TABLE>
<footer:footerindhold id="footerindhold2" runat="server"></footer:footerindhold></TD>
</body>
</HTML>
----------
logud.ascx
-----------
<form action="logud.aspx" runat="server" id="formen" name="navn1">
<asp:ImageButton ID="logout" ImageUrl="img/logout.gif" OnClick="logUd" Runat="server"></asp:ImageButton>
</form>
<script language="C#" runat="server">
private void logUd(object sd, System.Web.UI.ImageClickEventArgs vgu)
{
Session.Abandon();
Response.Redirect("login.aspx");
}
</script>
