在后面的代码中获取javascript中设置的值

时间:2009-09-11 04:51:32

标签: c# asp.net javascript

我在html中有以下内容

<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>

我在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 ;

}

在我的代码背后我有

 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;

        }

问题是我在js中获取lblTableValues中的值。但是在代码中,它不包含任何值,其值为“”。任何人都可以帮助在后面的代码中的click事件中获取hdnTableValues中包含的值。

2 个答案:

答案 0 :(得分:3)

您可以使用runat =“server”的隐藏输入来处理此问题。将值存储在JavaScript中的隐藏字段中。您可以在C#代码后面访问字段值。

<强> HTML

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

<强>的JavaScript

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

<强> C#

string valueInCodeBehind = txtHidData.Value;

答案 1 :(得分:0)

像这样使用asp:HiddenField控件:(jquery示例)

页面或控件中的

    <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>

在代码后面的按钮或提交方法中:

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