mardi 5 mai 2015

repeater not showing data in proper format in asp.net and C#

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