2009-09-11 9 views
0

je suit en htmlPour obtenir valeur définie en javascript dans le code derrière

<div id="dvAddToGrid" runat="server"> 
<table style="margin-left:80%"> 
    <tr> 
    <td> 
    <asp:LinkButton ID="lnkAddToGrid" runat="server" Text="Add New" onclick="lnkAddToGrid_Click" OnClientClick="GetValues()" Font-Underline="True"></asp:LinkButton> 
    </td> 
    </tr> 
</table> 
</div> 

Je suit en javascript

function GetValues() { 

// for (i = 1; i <= 5; i++) 
// { 
//  $("#hdnTableValues")[0].value += document.getElementById("txtSerialNo_1").value+ ","; 
//  $("#hdnTableValues")[0].value += document.getElementById("txtBookName_1").value + ","; 
//  $("#hdnTableValues")[0].value += document.getElementById("txtAuthor_1").value + ","; 
//  $("#hdnTableValues")[0].value += document.getElementById("txtPublisher_1").value + ","; 
//  $("#hdnTableValues")[0].value += document.getElementById("txtNoOfBooks_1").value + ","; 
//  $("#hdnTableValues")[0].value += document.getElementById("txtRemarks_1").value + "|"; 
//   // } 
    document.getElementById("lblTableValues").innerHTML = $("#hdnTableValues")[0].value ; 

} 

Dans mon code derrière j'ai

protected void lnkAddToGrid_Click(object sender, EventArgs e) 
     { 
      DataTable dtBookList = new DataTable(); 
      dtBookList.Columns.Add("SerialNo"); 
      dtBookList.Columns.Add("BookName"); 
      dtBookList.Columns.Add("Author"); 
      dtBookList.Columns.Add("Publisher"); 
      dtBookList.Columns.Add("NoOfBooks"); 
      dtBookList.Columns.Add("Remarks"); 
      string str = lblTableValues.Text ; 
      for(int i=1;i<5;i++) 
      { 
       DataRow dtRow = dtBookList.NewRow(); 
       //hdnTableValues.Value 
      } 
         dvBookList.Visible = false; 
      dvAddToGrid.Visible = false; 

     } 

problème Est-ce que je reçois des valeurs dans lblTableValues ​​dans js.Mais dans le code behid il ne contient aucune valeur sa valeur est "" .Can n'importe qui aide à obtenir la valeur contenue dans hdnTableValues ​​dans l'événement click dans le code derrière.

Répondre

2

Vous pouvez utiliser une entrée cachée avec runat = "server" pour gérer cela. Stocker la valeur dans le champ masqué en JavaScript. Et vous pouvez accéder à la valeur du champ dans le code C# derrière.

HTML

<input type="hidden" id="txtHidData" runat="server" /> 

JavaScript

document.getElementById ("txtHidData").value = "your value"; 

C#

string valueInCodeBehind = txtHidData.Value; 
+0

toujours pas obtenir dans le code derrière – user42348

0

Utilisez le asp: contrôle HiddenField comme t son: (exemple jquery)

dans la page ou le contrôle:

<asp:HiddenField ID="Hidden1" runat="server" Value="blank" /> 

    <asp:PlaceHolder runat="server"> 
    <script type ="text/javascript"> 
     $(function() { 
      //get the id of the hidden control 
      var clientID = "<%= Hidden1.ClientID %>"; 
      $("#" + clientID).val("this is from the client"); 
     });  
    </script> 
</asp:PlaceHolder> 

Dans un bouton ou soumettre méthode dans le code derrière:

Debug.WriteLine("val: " + Hidden1.Value); 
Questions connexes