2016-08-02 16 views
-1

Ich habe ein Label und ich speicherte Wert von ihm durch Back-End-Codierung. Ich möchte den Wert von Label erhalten und an Javascript übergeben. Bitte hilf mir. Alles funktioniert, aber wenn ich das Update-Panel hinzufüge, zeigen sie jetzt 0-Wert. Ich muss das Update-Panel so platzieren, dass die Seite nicht jede angeklickte Gridview-Zeile aktualisiert.Label-Wert an Javascript übergeben

Hier ist was ich bisher habe.

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<asp:Label ID="my_graph" runat="server"></asp:Label> 
</ContentTemplate> 
</asp:UpdatePanel> 

<asp:UpdatePanel ID="UpdatePanel4" runat="server"> 
<ContentTemplate> 
<asp:GridView ID="GridView1" class = "grd-view table table-hover" OnRowDataBound="GridView1_RowDataBound" OnSelectedIndexChanged="Gridview1_OnSelectedIndexChanged" runat="server"> 
</asp:GridView>             
</ContentTemplate> 
</asp:UpdatePanel> 

<div id="chartContainer" style="height: 150px; width: 100%;"></div> 

JavaScript

var pie = 0; 
     function changepie(val) { 
     pie = val; 

     } 
     function pageLoad() { 
      alert(pie) 
      } 

BackEnd

Protected Sub Gridview1_OnSelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged 

     Dim percent As String = GridView1.SelectedRow.Cells(6).Text 
     my_graph.Text = percent 

     ClientScript.RegisterClientScriptBlock(Me.[GetType](), "Script", "changepie(" + my_graph.Text + ");", True) 

    End Sub 
+0

nur geben ihm eine ID und bekommen es –

+0

@RachitGupta Was meinst du? Können Sie mir bitte ein Muster geben? Vielen Dank. –

+0

Lernen Sie die grundlegende Syntax von JS. –

Antwort

0

Das ist, weil Sie die Gridview in verschiedenen Update-Panel setzen. Versuchen Sie, die Label & Gridview in gleichen Updatepanel

setzen UPDATE

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Label ID="my_graph" runat="server"></asp:Label> 
     <asp:GridView ID="GridView1" class = "grd-view table table-hover"    
     OnRowDataBound="GridView1_RowDataBound" 
     OnSelectedIndexChanged="Gridview1_OnSelectedIndexChanged" runat="server"> 
     </asp:GridView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

oder fügen Sie Trigger auf die ersten Update wie unter

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Label ID="my_graph" runat="server"></asp:Label> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Gridview_1" EventName="SelectedIndexChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 
+0

Der Fehler wird jetzt angezeigt. "Es konnte kein Ereignis mit dem Namen 'Gridview1_OnSelectedIndexChanged' auf dem zugeordneten Steuerelement 'GridView1' für den Trigger im UpdatePanel 'UpdatePanel1' gefunden werden." –

+0

Ich habe eine Menge von Gridview und Im Speichern der Gridview Row Wert auf nur ein Label. Was ich wissen möchte ist, den Label-Wert an Javascript zu übergeben, damit es im Tortendiagramm angezeigt wird. Ich habe auch versucht, die Probe, die Sie gaben, aber es funktioniert nicht. Hast du irgendeine Idee? Ich bin so verloren. –

+0

versuchen Sie, die JavaScript-Funktion auf 'onClientClick' Ereignis der Zeile dann – jonju