简体   繁体   中英

How to bind the label in GridView in asp.net

I am using Gridview to display my details

 <asp:GridView ID="gvDetails" runat="server">
                <HeaderTemplate>
                    <asp:Label ID="Details" runat="server" Text="Remarks"></asp:Label>
                    </HeaderTemplate>
                <ItemTemplate>

                <asp:Label ID="remarks" runat="server"></asp:Label>
                </ItemTemplate>
</asp:GridView>

Now from the backend c# i am fetching from database and displaying

var regiondata = (from rm in db.RegionMasters select new { rm.regionName,rm.remarks,rm.regionId }).ToList();
          if (regiondata.Count > 0)
          {
            foreach (var region in regiondata)
            {                    
                string z = region.remarks.ToString().Substring(0, 5);    
                ((Label)gvDetails.FindControl("remarks")).Text = z.ToString();    
                gvDetails.DataSource = region;
                gvDetails.DataBind();

             }

           }

so to display in the label thats inside the gridview i am using ((Label)gvDetails.FindControl("remarks")).Text = z.ToString(); but it keeps showing me "object reference not set to an instance of an object"

Bind the grid like this.

<asp:GridView ID="gvDetails" runat="server">
    <HeaderTemplate>
        <asp:Label ID="Details" runat="server" Text="Remarks"></asp:Label>
    </HeaderTemplate>
    <ItemTemplate>
         <asp:Label ID="remarks" runat="server" Text='<%# Eval("remarks").ToString().Substring(0,5) %>' ></asp:Label>
    </ItemTemplate>
 </asp:GridView>

And C# code.

var regiondata = (from rm in db.RegionMasters select new { rm.regionName,rm.remarks,rm.regionId }).ToList();
if (regiondata.Count > 0)
{              
     gvDetails.DataSource = regiondata;
     gvDetails.DataBind();
}

Find it like this

      protected void grdQuestionSet_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item.ItemType.Equals(GridItemType.Item))
            //can also check if (e.Item is GridDataItem)
            {
             Label yourlabel= (e.Item.FindControl("labelId") as Label);
             //bind your label to data here
            }
        }
<asp:GridView ID="gvDetails" runat="server">
    <HeaderTemplate>
        <asp:Label ID="Details" runat="server" Text="Remarks"></asp:Label>
    </HeaderTemplate>
    <ItemTemplate>
        <asp:Label ID="remarks" runat="server" Text='<%# Eval("remarks")'></asp:Label>
    </ItemTemplate>
</asp:GridView>

var regiondata = (from rm in db.RegionMasters select new {       rm.regionName,rm.remarks,rm.regionId }).ToList();
      if (regiondata.Count > 0)
      {
           gvDetails.DataSource = regiondata;
           gvDetails.DataBind();
       }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM