asp.net repeater for each row

Gilad Adar

I have a repeater that retrieve data from my db. some of the results are getting a null value in a specific column due to a join query and its fine.

I would like to go over each row and if the result is null for the specific row i want to change the css for this row.

Now for the code:

<asp:Repeater ID="repRequests" OnItemDataBound="repRequests_ItemDataBound" runat="server">
    <ItemTemplate>
        <asp:Label ID="lbltest" runat="server" Text='<%#Eval("val_name") %>'></asp:Label>
    </ItemTemplate>
</asp:Repeater>

C#:

if (!IsPostBack)
{
    using (SqlConnection con = new SqlConnection(CS))
    {
        SqlCommand cmd = new SqlCommand("check_accepted", con);
        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@val_name", Session["valName"].ToString());
        con.Open();
        SqlDataReader dr = cmd.ExecuteReader();

        repRequests.DataSource = dr;
        repRequests.DataBind();
    }
}

How to write this ?

protected void repRequests_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || 
        e.Item.ItemType == ListItemType.AlternatingItem)
    {
        **//what i want to get:**

        if (dr["accepted_id"] == Null) // a column from the db table
        {
            repRequests.attribute["class"] = "Some Class"
        }
    }
}

Thanks for the helpers !

Kiran Hegde

You can try the following. If the data source is a DataReader object, you must cast e.Item.DataItem as type DBDataRecord (from System.Data.Common)

protected void repRequests_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item ||
        e.Item.ItemType == ListItemType.AlternatingItem)
    {
        System.Data.Common.DbDataRecord dataRow = e.Item.DataItem as System.Data.Common.DbDataRecord;
        if (dataRow["accepted_id"] == DBNull.Value || dataRow["accepted_id"] == null) // a column from the db table
        {
          // I am not sure how to you get repRequests. but you can find the control using e.Row.Item.FindControl() function
           repRequests.attribute["class"] = "Some Class";
        }
    }
}

EDIT Further to your questions, if you want to change the css of a perticular row, if some value is null, you cannot set css to repeater or repeater item directly. What you need to do is add a top level panel to the ItemTemplate like this

<ItemTemplate>
    <asp:Panel runat="server" ID="panelRow">
        <asp:Label ID="lbltest" runat="server" Text='<%#Eval("val_name") %>'></asp:Label>
        </asp:Panel>
</ItemTemplate>

Then you can change the css of the panel like below

protected void repRequests_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item ||
                    e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    System.Data.Common.DbDataRecord dataRow = e.Item.DataItem as System.Data.Common.DbDataRecord;

                    if (dataRow["accepted_id"] == DBNull.Value || dataRow["accepted_id"] == null) // a column from the db table
                    {
                        Panel panelRow = e.Item.FindControl("panelRow") as Panel;
                        panelRow.CssClass = "yourcssclass";

                    }
                }
            }

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

ASP.NET Repeater Item add divider after each row

From Dev

Perform count based on value of repeater control for each row C# ASP.NET

From Dev

Fix header row in repeater in ASP.NET

From Dev

Fix header row in repeater in ASP.NET

From Dev

Show/Hide Single Row in ASP.NET Repeater

From Dev

ASP.NET C# Continue row count in Gridview in Repeater

From Dev

NavigateUrl on Repeater ASP.net

From Dev

NavigateUrl on Repeater ASP.net

From Dev

ASP.NET Repeater - Eval() for bool?

From Dev

Convert Bootstrap Carousel to ASP.Net Repeater

From Dev

ASP .NET Using a Repeater inside of UpdatePanel with UpdateProgress

From Dev

repeater item command in asp.net

From Dev

to disable a label of repeater on some condition in asp .net

From Dev

Using Bootstrap tabs with ASP NET repeater

From Dev

asp.net repeater use template in javascript

From Dev

To bind images in repeater using asp.net

From Dev

asp.net repeater merge columns dynamically

From Dev

ASP.NET Converting repeater item to the textbox

From Dev

Repeater asp.net tag not working

From Dev

asp.net repeater merge columns dynamically

From Dev

Convert Bootstrap Carousel to ASP.Net Repeater

From Dev

Conditional statement for Repeater Controll in ASP.NET

From Dev

trying Image Button in repeater Asp.net

From Dev

asp net dropdown selectedvalue/selectedindex not updating in repeater

From Dev

ASP.Net - Issues with Repeater / DataBinding

From Dev

Repeater in asp.net from DB with DropDownList

From Dev

Adding Header to the repeater in asp.net

From Dev

Loop through ACF repeater rows in wordpress and display each row separately

From Dev

How to Add a blank row to asp repeater during ItemDataBound event?

Related Related

HotTag

Archive