hie i am using nasted repeater to show data from two tables. in first repeater it gets a data from a table called category. and shows in first repeater child repeater gets value from another repeater using where condition. here is code.
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Repeater ID="parecntrptr" runat="server" onitemdatabound="Repeater1_ItemDataBound">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<div class="panel menu-style" id="section-1">
<div class="panel-heading">
<h4 class="panel-title" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true">
<asp:Label ID="menuheadlbl" runat="server" Text='<%#Eval("cat_name") %>'></asp:Label>
</h4>
</div>
<asp:Repeater ID="childrptr" runat="server">
<HeaderTemplate>
<div id="collapseOne" class="panel-collapse collapse in">
</HeaderTemplate>
<ItemTemplate>
<div class="media dish-pad">
<div class="media-left">
<a href="#">
<img class="media-object" src='<%#Eval("item_img_loc") %>' alt='<%#Eval("iterm_name") %>'>
</a>
</div>
<div class="media-body">
<h4 class="media-heading">
<asp:Label ID="Label2" runat="server" Text='<%#Eval("iterm_name") %>'></asp:Label>
</h4>
<p>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("item_description") %>'></asp:Label>
</p>
</div>
<div class="media-right media-right-wid">
<label>
<i class="fa fa-dot-circle-o"></i>Veg
</label>
<label>
<i class="fa fa-dot-circle-o"></i>Veg
</label>
<div class="input-group">
<asp:TextBox ID="TextBox1" runat="server" disabled="" CssClass="form-control" Text='<%#Eval("item_price_full") %>'></asp:TextBox>
<div class="input-group-addon">Rs</div>
</div>
</div>
</div>
</ItemTemplate>
<FooterTemplate>
</div>
</div>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
c# code.
SqlCommand cmd;
SqlDataAdapter da;
DataSet ds;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyCon"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
if (Session["rest_id"] != null)
{
if (!IsPostBack)
{
RepeterData();
}
}
else
{
Response.Redirect("Login.aspx");
}
}
private void RepeterData()
{
con.Open();
cmd = new SqlCommand("Select * from add_category WHERE rest_id='admin'", con);
DataSet ds = new DataSet();
da = new SqlDataAdapter(cmd);
da.Fill(ds);
parecntrptr.DataSource = ds;
parecntrptr.DataBind();
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater Repeater2 = (Repeater)(e.Item.FindControl("childrptr"));
foreach (RepeaterItem repeated in parecntrptr.Items)
{
Label menuhead = (Label)FindControlRecursive(repeated, "menuheadlbl");
Label1.Text = menuhead.Text;
}
string catname = Label1.Text;
cmd = new SqlCommand("Select * from menu_items WHERE rest_id='admin' AND cat_name='"+catname+"';", con);
DataSet ds = new DataSet();
da = new SqlDataAdapter(cmd);
da.Fill(ds);
Repeater2.DataSource = ds;
Repeater2.DataBind();
}
}
public static Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
return root;
return root.Controls.Cast<Control>().Select(c => FindControlRecursive(c, id)).FirstOrDefault(c => c != null);
}
Aucun commentaire:
Enregistrer un commentaire