OK !
ASPX:
<%@ Register TagPrefix="uc1" TagName="afstemning" Src="afstemning.ascx" %>
<%@ Page language="c#" Codebehind="vote.aspx.cs" AutoEventWireup="false" Inherits="afstemning.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="
http://schemas.microsoft.com/intellisense/ie5"> </HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<table width="650">
<tr>
<td>
<P>Overskrift</P>
<P> </P>
</td>
</tr>
</table>
<table width="650">
<TR>
<td width="100">
<P>Menu</P>
<P><a href="profil.aspx">Din Profil</a></P>
<P><a href="seach.aspx">Søg</a></P>
<P>???</P>
<P>???</P>
<p><a href="poll.aspx">Afstemning</a></p>
</td>
<td width="550">
<P>
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
<table>
<tr>
<td>Spørgsmål:
<%#DataBinder.Eval(Container.DataItem, "PollQ") %>
</td>
</tr>
<tr>
<td>Start:
<%# DataBinder.Eval(Container.DataItem,"start") %>
</td>
</tr>
<tr>
<td>Slut:
<%# DataBinder.Eval(Container.DataItem,"slut") %>
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<asp:RadioButtonList id="valg" runat="server" Visible="true" DataValueField="PollAnswer" DataTextField="Valg muligheder" />
</ItemTemplate>
</asp:Repeater></P>
</td>
</TR>
</table>
</form>
</body>
</HTML>
Codebehind:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
namespace afstemning
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater Repeater1;
protected System.Web.UI.WebControls.RadioButtonList valg;
protected System.Web.UI.HtmlControls.HtmlForm Form1;
OleDbConnection myConn;
OleDbDataAdapter adp;
OleDbCommand cmd;
private void Page_Load(object sender, System.EventArgs e)
{
string strDSN=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=";
strDSN+=Server.MapPath("data\\vote.mdb");
// bindSpg(strDSN);
// bindOver(strDSN);
if(!IsPostBack)
{
Repeater1.DataBind();
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public void bindOver(string strDSN)
{
myConn = new OleDbConnection(strDSN);
string query = "Select * From PollQ where PollId = 14";
cmd = new OleDbCommand(query, myConn);
myConn.Open();
Repeater1.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
Repeater1.DataBind();
}
public void bindSpg()
{
try
{
string strDSN=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=";
strDSN+=Server.MapPath("data\\vote.mdb");
DataSet ds = new DataSet();
myConn = new OleDbConnection(strDSN);
string spg ="Select PollId,PollAnswer From PollAnswer where PollId = 14";
adp = new OleDbDataAdapter(spg, myConn);
myConn.Open();
adp.Fill(ds, "PollAnswer");
valg.DataSource = ds;
valg.DataBind();
myConn.Close();
}
catch (Exception E)
{Response.Write(E);}
}
private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// her kan du så få fat i din indre liste sådan her
RadioButtonList radioButtons = e.Item.FindControl("valg") as RadioButtonList;
if(radioButtons != null)
{
// få fat i datagrundlaget for det aktuelle item
DataRowView row = e.Item.DataItem as DataRowView;
// hent det id du skal bruge;
int pollId = (int)row["pollId"];
// og brug det til at finde de indre data du skal bruge.
radioButtons.DataSource = GetInnerListData(pollId);
radioButtons.DataBind();
}
}
}
public DataSet GetInnerListData(int pollId)
{
// her henter du så dine data - baseret på det poolid du får... og returnerer dem
string strDSN=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=";
strDSN+=Server.MapPath("data\\vote.mdb");
DataSet ds = new DataSet();
myConn = new OleDbConnection(strDSN);
string spg ="Select PollId,PollAnswer From PollAnswer where PollId ="+ pollId;
adp = new OleDbDataAdapter(spg, myConn);
myConn.Open();
adp.Fill(ds, "PollAnswer");
myConn.Close();
return ds;
}
}
}