Dear All,
I am using Nested Repeater Control in my page to display a set of questions and for each question, 4 choices.
I an able to use a single repeater and display all the questions. But I am unable to use Nested Repeaters.
I get a runtime exception : "ArgumentNullException was unhandled by user code, 'column' argument cannot be null Parameter Name: column" (Error line I have highlighted in bold)
Below is the ASPX File.
<body>
<form id="form1" runat="server">
<div style="height: 307px">
<asp:Repeater ID="Repeater1" runat="server"
onitemcommand="Repeater1_ItemCommand">
<ItemTemplate>
<%#DataBinder.Eval(Container, "DataItem.q_text")%>
<br />
<asp:Repeater ID="Repeater3" dataSource='<%#((DataRowView)Container.DataItem).Row.GetChildRows("myrelation")%>' runat="server">
<AlternatingItemTemplate>
<br />
<%#DataBinder.Eval(Container,"DataItem.ans_text")%>
</AlternatingItemTemplate>
</asp:Repeater>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td>
<br/>
<%#DataBinder.Eval(Container, "DataItem.q_text")%>
<br/>
<br/>
</td>
</tr>
</AlternatingItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
Below is the Code Behind code.
protected void Page_Load(object sender, EventArgs e)
{
const string ConnectionString = "Data Source=X-XXXXXXXX\\SQLEXPRESS;Initial Catalog=XXXXXX;Integrated Security=True";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
string query = "select q_text from table1";
string query1 = "select ans_text from table1, table2 where table1.q_id= table2.q_id";
SqlDataAdapter cmd1 = new SqlDataAdapter(query, conn);
DataSet ds = new DataSet();
cmd1.Fill(ds, "table1");
SqlDataAdapter cmd2 = new SqlDataAdapter(query1, conn);
cmd2.Fill(ds, "table2");
ds.Relations.Add("myrelation", ds.Tables[" table1"].Columns["q_id"], ds.Tables[ table2"].Columns["q_id"]);
Repeater1.DataSource = ds.Tables[" table1"];
Page.DataBind();
conn.Close();
}
Neither of tables are blank and are having valid values.
Kindly assist.