Note that there are some explanatory texts on larger screens.

plurals
  1. POimage is not displaying in templatefield from gridview sorting
    primarykey
    data
    text
    <p>I have an issues with TemplateField in grid view. </p> <p>There are two <code>TemplateField(imgFSL,imgMain)</code> show the Image based on value from database. In pageload, the grid view shows the correct image photo. After i click one of gridview column sorting, the grid does not show the image even the url is correct. Please help me this issue. I have searched other website and tried so many ways. But no resolved it yet after clicking grid view sorting.</p> <p>Here is designer page for grid view</p> <pre><code>&lt;asp:UpdatePanel ID="upBOMList" runat="server"&gt; &lt;ContentTemplate&gt; &lt;asp:Panel ID="Panel2" runat="server" ScrollBars="Vertical" Height="350px"&gt; &lt;asp:GridView ID="grdBOMList" runat="server" AutoGenerateColumns="False" AllowSorting="true" BorderStyle="Solid" EmptyDataText="&lt;%$ Resources:Resource, NoBOMListMsg %&gt; " Font-Names="Verdana" BorderWidth="1px" CellPadding="3" CellSpacing="1" GridLines="None" Width="100%" BackColor="White" BorderColor="#999999" DataKeyNames="PartNo" ForeColor="Black" OnSelectedIndexChanged="grdBOMList_SelectedIndexChanged" OnRowDataBound="grdBOMList_RowDataBound" OnPageIndexChanging="grdBOMList_PageIndexChanging" OnSorting="grdBOMList_Sorting" ShowFooter="False" &gt; &lt;AlternatingRowStyle CssClass="gridAlternatingRowStyle" /&gt; &lt;Columns&gt; &lt;asp:BoundField ControlStyle-BorderWidth="0" DataField="ItemLocationNo" HeaderText="&lt;%$ Resources:Resource, LocID %&gt;" SortExpression="ItemLocationNo"&gt; &lt;ControlStyle BorderWidth="0px"&gt;&lt;/ControlStyle&gt; &lt;ItemStyle CssClass="gridPaddingStyle_center" /&gt; &lt;HeaderStyle Width="50px" CssClass="gridPaddingStyle_center"&gt;&lt;/HeaderStyle&gt; &lt;/asp:BoundField&gt; &lt;asp:BoundField ControlStyle-BorderWidth="0" DataField="PartCategory" HeaderText="&lt;%$ Resources:Resource, Category %&gt;" SortExpression="PartCategory"&gt; &lt;ControlStyle BorderWidth="0px"&gt;&lt;/ControlStyle&gt; &lt;ItemStyle CssClass="gridPaddingStyle_center" /&gt; &lt;HeaderStyle CssClass="gridPaddingStyle_center" Width="150px"&gt;&lt;/HeaderStyle&gt; &lt;/asp:BoundField&gt; &lt;asp:ButtonField DataTextField="PartNo" HeaderText="&lt;%$ Resources:Resource, PartNo %&gt;" ShowHeader="True" CommandName="Select" SortExpression="PartNo"&gt; &lt;ItemStyle CssClass="gridPaddingStyle_center" /&gt; &lt;HeaderStyle CssClass="gridPaddingStyle_center" Width="80px"&gt;&lt;/HeaderStyle&gt; &lt;/asp:ButtonField&gt; &lt;asp:BoundField ControlStyle-BorderWidth="0" DataField="Description" HeaderText="&lt;%$ Resources:Resource, Description %&gt;" SortExpression="Description"&gt; &lt;ControlStyle BorderWidth="0px"&gt;&lt;/ControlStyle&gt; &lt;ItemStyle CssClass="gridPaddingStyle_left" /&gt; &lt;HeaderStyle CssClass="gridPaddingStyle_center" Width="150px"&gt;&lt;/HeaderStyle&gt; &lt;/asp:BoundField&gt; &lt;asp:BoundField ControlStyle-BorderWidth="0" DataField="VDRCode" HeaderText="&lt;%$ Resources:Resource, VendorsPN %&gt;" SortExpression="VDRCode"&gt; &lt;ControlStyle BorderWidth="0px"&gt;&lt;/ControlStyle&gt; &lt;ItemStyle CssClass="gridPaddingStyle_left" /&gt; &lt;HeaderStyle CssClass="gridPaddingStyle_center" Width="80px"&gt;&lt;/HeaderStyle&gt; &lt;/asp:BoundField&gt; &lt;asp:BoundField ControlStyle-BorderWidth="0" DataField="FSL" HeaderText="FSL"&gt; &lt;ControlStyle BorderWidth="0px"&gt;&lt;/ControlStyle&gt; &lt;HeaderStyle CssClass="gridPaddingStyle_center" Width="150px"&gt;&lt;/HeaderStyle&gt; &lt;/asp:BoundField&gt; &lt;asp:BoundField ControlStyle-BorderWidth="0" DataField="Main" HeaderText="&lt;%$ Resources:Resource, Main %&gt;"&gt; &lt;ControlStyle BorderWidth="0px"&gt;&lt;/ControlStyle&gt; &lt;HeaderStyle CssClass="gridPaddingStyle_center" Width="150px"&gt;&lt;/HeaderStyle&gt; &lt;/asp:BoundField&gt; &lt;asp:TemplateField HeaderText="FSL" HeaderStyle-Width="5%" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"&gt; &lt;ItemTemplate&gt; &lt;asp:Image ID="imgFSL" runat="server" /&gt; &lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:TemplateField HeaderText="&lt;%$ Resources:Resource, Main %&gt;" HeaderStyle-Width="5%" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"&gt; &lt;ItemTemplate&gt; &lt;asp:Image ID="imgMain" runat="server" /&gt; &lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;/Columns&gt; &lt;HeaderStyle CssClass="gridHeaderStyle" ForeColor="#ffffff" /&gt; &lt;FooterStyle CssClass="gridFooterStyle" ForeColor="Black" /&gt; &lt;PagerStyle CssClass="gridPagerStyle" ForeColor="#ffffff" /&gt; &lt;RowStyle CssClass="gridRowStyle" ForeColor="Black" /&gt; &lt;SelectedRowStyle BackColor="#2a2a7f" Font-Bold="False" ForeColor="White" /&gt; &lt;/asp:GridView&gt; &lt;/asp:Panel&gt; &lt;/ContentTemplate&gt; &lt;Triggers&gt; &lt;asp:PostBackTrigger ControlID="btnImportFile" /&gt; &lt;asp:PostBackTrigger ControlID="btnExportFile" /&gt; &lt;asp:PostBackTrigger ControlID="btnExport" /&gt; &lt;asp:PostBackTrigger ControlID="btnCreate" /&gt; &lt;/Triggers&gt; </code></pre> <p></p> <p>Here is the coding porting for gridview row databound, sorting function and Create Table</p> <pre><code>public void grdBOMList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Subsidiary sub = new SubsidiaryFacade().GetBySubsidiaryCode(userSubsidiaryCode, userid, userEntityCode); int redInd = (int)sub.RedIndicatorQty; int greenInd = (int)sub.GreenIndicatorQty; string fsl = e.Row.Cells[5].Text; string main = e.Row.Cells[6].Text; System.Web.UI.WebControls.Image imgFSL = (System.Web.UI.WebControls.Image)e.Row.FindControl("imgFSL"); if (fsl != string.Empty &amp;&amp; fsl != null) { int quantityFSL = Convert.ToInt32(fsl); if (quantityFSL != null) { if (quantityFSL &lt;= redInd) { imgFSL.ImageUrl = "~/image/Circle_Red.png"; //imgFSL.ImageUrl = ResolveUrl("~/image/Circle_Red.png"); //imgFSL.ImageUrl = Page.ResolveClientUrl("~/image/Circle_Red.png"); } else if (redInd &lt; quantityFSL &amp;&amp; quantityFSL &lt; greenInd) { imgFSL.ImageUrl = "~/image/Circle_Orange.png"; //imgFSL.ImageUrl = ResolveUrl("~/image/Circle_Orange.png"); //imgFSL.ImageUrl = Page.ResolveClientUrl("~/image/Circle_Orange.png"); } else if (quantityFSL &gt;= greenInd) { imgFSL.ImageUrl = "~/image/Circle_Green.png"; //imgFSL.ImageUrl = ResolveUrl("~/image/Circle_Green.png"); //imgFSL.ImageUrl = Page.ResolveClientUrl("~/image/Circle_Green.png"); } } } if (main != string.Empty &amp;&amp; main != null) { int quantityMain = Convert.ToInt32(main); System.Web.UI.WebControls.Image imgMain = (System.Web.UI.WebControls.Image)e.Row.FindControl("imgMain"); if (quantityMain != null) { if (quantityMain &lt;= redInd) { imgMain.ImageUrl = "~/image/Circle_Red.png"; } else if (redInd &lt; quantityMain &amp;&amp; quantityMain &lt; greenInd) { imgMain.ImageUrl = "~/image/Circle_Orange.png"; } else if (quantityMain &gt;= greenInd) { imgMain.ImageUrl = "~/image/Circle_Green.png"; } } } } } </code></pre> <p>This is grid sorting</p> <pre><code>protected void grdBOMList_Sorting(object sender, GridViewSortEventArgs e) { string sortExpression = e.SortExpression; string direction = string.Empty; if (SortDirection == SortDirection.Ascending) { SortDirection = SortDirection.Descending; direction = "DESC"; } else { SortDirection = SortDirection.Ascending; direction = "ASC"; } BindBOMListGrid(); List&lt;BOM&gt; list = (List&lt;BOM&gt;)grdBOMList.DataSource; DataTable dt = CreateDataTable_BOM(); if (list.Count &gt; 0) { for (int i = 0; i &lt; list.Count; i++) { BOM b = list[i]; DataRow row; row = dt.NewRow(); row["ItemLocationNo"] = b.ItemLocationNo; row["PartCategory"] = b.PartCategory; row["PartNo"] = b.PartNo; row["Description"] = b.Description; row["VDRCode"] = b.VDRCode; int fslvalue = Convert.ToInt32(b.FSL); Subsidiary sub = new SubsidiaryFacade().GetBySubsidiaryCode(userSubsidiaryCode, userid, userEntityCode); int redInd = (int)sub.RedIndicatorQty; int greenInd = (int)sub.GreenIndicatorQty; if (Convert.ToString(b.FSL) != string.Empty &amp;&amp; b.FSL != null) { int quantityFSL = Convert.ToInt32(b.FSL); if (quantityFSL != null) { if (quantityFSL &lt;= redInd) { row["imgFSL"] = ResolveUrl("~/image/Circle_Red.png"); } else if (redInd &lt; quantityFSL &amp;&amp; quantityFSL &lt; greenInd) { row["imgFSL"] = ResolveUrl("~/image/Circle_Orange.png"); } else if (quantityFSL &gt;= greenInd) { row["imgFSL"] = ResolveUrl("~/image/Circle_Green.png"); } } } dt.Rows.Add(row); } } dt.DefaultView.Sort = sortExpression + " " + direction; grdBOMList.DataSource = dt; grdBOMList.DataBind(); ModalPopupExtender.Show(); } </code></pre> <p>This is Create data table for grid view</p> <pre><code>private DataTable CreateDataTable_BOM() { DataTable myDataTable = new DataTable(); DataColumn myDataColumn; myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.String"); myDataColumn.ColumnName = "ItemLocationNo"; myDataTable.Columns.Add(myDataColumn); myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.String"); myDataColumn.ColumnName = "PartCategory"; myDataTable.Columns.Add(myDataColumn); myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.String"); myDataColumn.ColumnName = "PartNo"; myDataTable.Columns.Add(myDataColumn); myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.String"); myDataColumn.ColumnName = "Description"; myDataTable.Columns.Add(myDataColumn); myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.String"); myDataColumn.ColumnName = "VDRCode"; myDataTable.Columns.Add(myDataColumn); myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.Int32"); myDataColumn.ColumnName = "FSL"; myDataTable.Columns.Add(myDataColumn); myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.String"); myDataColumn.ColumnName = "imgFSL"; myDataTable.Columns.Add(myDataColumn); myDataColumn = new DataColumn(); myDataColumn.DataType = Type.GetType("System.Int32"); myDataColumn.ColumnName = "Main"; myDataTable.Columns.Add(myDataColumn); return myDataTable; } </code></pre> <p>In pageload, the grid shows the image like that(before sorting)</p> <p><img src="https://i.stack.imgur.com/KM5I4.png" alt="enter image description here"></p> <p>After clicking one of grid column sorting, the image is not showing even the url is correct</p> <p><img src="https://i.stack.imgur.com/tOkWH.png" alt="enter image description here"></p> <p>Please give me any suggestions.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload