Click here to Skip to main content
15,888,082 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi All ,
I tried to call a function in each item in DataList Items but it only working in the first item
This is my function code
C#
private void gauges()
    {
        int i = 5;
        str.Append(@"google.charts.load('current', {'packages':['gauge']});
           google.charts.setOnLoadCallback(drawChart);
       
         function drawChart() { var value=");
        str.Append(""+i +";");


        str.Append("var valueph =");
        str.Append("" + i + ";");


        str.Append("var data = google.visualization.arrayToDataTable([['Label', 'Value'],['Temp', Number(value)]]);");

        str.Append("var dataph = google.visualization.arrayToDataTable([['Label', 'Value'],['p.H', Number(valueph)]]);");

        str.Append("var options = { width: 100, height: 100,redFrom: 50, redTo: 125, greenFrom: 0, greenTo: 60,yellowFrom: -55, yellowTo: 20,minorTicks: 3.5,max: 125,min: -55};");
        str.Append(" var optionsph = {width: 100, height: 100,redFrom: 9, redTo: 14,greenFrom: 6.5, greenTo: 9,yellowFrom: 0, yellowTo: 6.5, minorTicks: 3.5, max: 14, min: 0 };");
        str.Append("var chart = new google.visualization.Gauge(document.getElementById('chart_div'));");
        str.Append("chart.draw(data, options);");
        str.Append("var chart2 = new google.visualization.Gauge(document.getElementById('chart_div2'));");
        str.Append("chart2.draw(dataph, optionsph);}");


        str.Append("");

        lt.Text = str.ToString().Replace('*', '"');

    }



and here is inside Datalist item

protected void DataList3_ItemDataBound(object sender, DataListItemEventArgs e)
    {

      
          foreach (DataListItem dli in DataList3.Items)
            {
            gauges();

        }
}






    <asp:DataList ID="DataList3" runat="server" DataSourceID="SqlDataSource3" RepeatColumns="2" RepeatDirection="Horizontal" DataKeyNames="DevId" OnItemDataBound="DataList3_ItemDataBound" BackColor="#CC33FF" BorderColor="#E7E7FF" BorderStyle="Groove" BorderWidth="2px" CellPadding="3" GridLines="Horizontal" >
        <AlternatingItemStyle BackColor="#F7F7F7" />
        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
        <ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
        <ItemTemplate>
<table style="width:100%;">
                <tr>
                    <td >
                        <div>
                            <asp:Literal ID="lt" runat="server"></asp:Literal>
                        </div>
                     <div id="chart_div" style="width: 50px; height: 50px; " ></div>

                    </td>
                    <td> </td>
                    <td>
                        <div>      
                                               <asp:Literal ID="Literal1" runat="server"></asp:Literal>


                        </div>
                        <div id="chart_div2" style="width: 50px; height: 50px;" ></div>
                    </td>
                </tr>
                <tr>
                    <td> </td>
                    <td> </td>
                    <td> </td>
                </tr>
                <tr>
                    <td>
                        <asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource2">
                            <EditItemTemplate>
                                Reading:
                                <asp:TextBox ID="ReadingTextBox" runat="server" Text='<%# Bind("Reading") %>' />
                                <br />
                                DateTRead:
                                <asp:TextBox ID="DateTReadTextBox" runat="server" Text='<%# Bind("DateTRead") %>' />
                                <br />
                                <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
                                 <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
                            </EditItemTemplate>
                            <InsertItemTemplate>
                                Reading:
                                <asp:TextBox ID="ReadingTextBox" runat="server" Text='<%# Bind("Reading") %>' />
                                <br />
                                DateTRead:
                                <asp:TextBox ID="DateTReadTextBox" runat="server" Text='<%# Bind("DateTRead") %>' />
                                <br />
                                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
                                 <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
                            </InsertItemTemplate>
                            <ItemTemplate>
                                <table style="width:100%;">
                                    <tr>
                                        <td colspan="3"</td>
                                    </tr>
                                    <tr>
                                        <td class="auto-style1">
                                            <asp:Label ID="Label7" runat="server" Font-Bold="True" ForeColor="#CC33FF" Text="Last Temp Read :"></asp:Label>
                                        </td>
                                        <td> </td>
                                        <td>
                                             </td>
                                    </tr>
                                    <tr>
                                        <td class="auto-style1" colspan="3">
                                            <asp:Label ID="DateTReadLabel" runat="server" Text='<%# Bind("DateTRead") %>' />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td class="auto-style1" colspan="3">
                                            <asp:Label ID="DateTReadLabel5" runat="server" Text='<%# Bind("Reading") %>' />
                                        </td>
                                    </tr>
                                </table>
                            </ItemTemplate>
                        </asp:FormView>
                    </td>
                    <td> </td>
                    <td>
                        <asp:FormView ID="FormView2" runat="server" DataSourceID="SqlDataPh">
                            <EditItemTemplate>
                                Reading:
                                <asp:TextBox ID="ReadingTextBox" runat="server" Text='<%# Bind("Reading") %>' />
                                <br />
                                DateTRead:
                                <asp:TextBox ID="DateTReadTextBox" runat="server" Text='<%# Bind("DateTRead") %>' />
                                <br />
                                <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
                                 <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
                            </EditItemTemplate>
                            <InsertItemTemplate>
                                Reading:
                                <asp:TextBox ID="ReadingTextBox0" runat="server" Text='<%# Bind("Reading") %>' />
                                <br />
                                DateTRead:
                                <asp:TextBox ID="DateTReadTextBox0" runat="server" Text='<%# Bind("DateTRead") %>' />
                                <br />
                                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
                                 <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
                            </InsertItemTemplate>
                            <ItemTemplate>
                                <table style="width:100%;">
                                    <tr>
                                        <td colspan="3"</td>
                                    </tr>
                                    <tr>
                                        <td class="auto-style1">
                                            <asp:Label ID="Label9" runat="server" Font-Bold="True" ForeColor="#CC33FF" Text="Last pH Read :"></asp:Label>
                                        </td>
                                        <td> </td>
                                        <td>
                                             </td>
                                    </tr>
                                    <tr>
                                        <td class="auto-style1" colspan="3">
                                            <asp:Label ID="DateTReadLabel" runat="server" Text='<%# Bind("DateTRead") %>' />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td class="auto-style1" colspan="3">
                                            <asp:Label ID="DateTReadLabel0" runat="server" Text='<%# Bind("Reading") %>' />
                                        </td>
                                    </tr>
                                </table>
                            </ItemTemplate>
                        </asp:FormView>
                    </td>
                </tr>
            </table>
        </ItemTemplate>
        <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
    </asp:DataList>


What I have tried:

.....................................................................
Posted
Updated 28-Sep-20 1:19am

1 solution

Every time you call gauges it does exactly the same thing: because you don't pass the DataListItem from the foreach loop to it.
Perhaps if you passed dli as a parameter to gauges you could work with different items each time? At present, it doesn't care what is in the DataList at all ...
 
Share this answer
 
Comments
shms_rony 29-Sep-20 4:24am    
the gauges just appear on the first item only, I tried to pass parameters from DataList items , it also worked only in the first item
OriginalGriff 29-Sep-20 4:50am    
You don't try in the code you show us, and we can't comment on code we can't see!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900