簡體   English   中英

如何使用 VB.NET 從服務器端獲取客戶端值?

[英]How to get client side value from server side using VB.NET?

我有一個 ASPX 頁面,我在其中使用 JS 設置數據,但我在嘗試從 VB 獲取這些數據時遇到了麻煩。 這是我所擁有的簡化版本...

ASPX:

<body onload="DoStuff();">
<script>
    function DoStuff() {
        var myvalue = document.getElementById('lblValue');
        myvalue.textContent = "blah";
        console.log (myvalue.textContent); // just to be sure that the value IS there
    }
</script>

<div style="display:block">
    <asp:label id="lblText" visible="true" runat="server">Text: </asp:label><asp:label id="lblValue" runat="server" visible="true" ></asp:label><br /><br />
    <asp:label id="lblMsg" visible="true" runat="server" >Message: </asp:label><asp:label id="lblMsgValue" runat="server" visible="true" >Click button...</asp:label><br /><br />
    <asp:Button id="btnGo" Text="Go" OnClick="btnGo_Click" runat="server"/>
</div>
</body>

ASPX.VB:

Protected Sub btnGo_Click(sender As Object, e As EventArgs)
    lblMsgValue.Text = "The value is *" & lblValue.Text & "*"
End Sub

我總是一無所獲,因為 output。 任何想法?

很有意思。 我從未注意到 label 設置客戶端不會持續存在。

請注意,如果您使用后面的代碼,請設置 label.Text,然后 label 會持續存在並在往返過程中存活。 但是,在JS中設置label? 好吧,您會立即看到瀏覽器更新,但是當您回帖時,您會丟失該文本。

這意味着您需要使用一個文本框 - 它們確實會持續存在,即使在客戶端更改時也是如此。

所以,例如這段代碼:

        <asp:Button ID="Button2" runat="server" 
              Text="Js Code" Width="114px" 
              OnClientClick="setlabel();return false" />
        <br />

     <asp:Label ID="Label1" runat="server" Text="a" ClientIDMode="Static" ViewStateMode="Enabled"></asp:Label>
        <br />
        <asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"></asp:TextBox>

        <script>
            function setlabel() {

                vlable = document.getElementById("Label1");
                vlable.innerHTML = 'Hello how are you';

                vtextBox = document.getElementById("TextBox1")
                vtextBox.value = "Js setup text box"

            }

        </script>

因此,在我們運行上述按鈕 (js) 后,文本框和 label 都會更新,您會在瀏覽器中看到結果。

在此處輸入圖像描述

但是,現在放入另一個按鈕,如下所示:

        <asp:Button ID="Button1" runat="server" Height="26px" Text="Set Lable" Width="129px" />

和后面的代碼:

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Debug.Print(Label1.Text)
    Debug.Print("Text box = " & TextBox1.Text)

End Sub

Output(運行客戶端js按鈕后)。

a
Text box = Js setup text box

所以我們看到 label 的 Text="a",雖然它在瀏覽器中確實發生了變化,但當我們回發時,它在更改客戶端時無法生存。

如前所述,如果后面的代碼更改了 label - 它確實會持續存在,並且會在旅途中存活下來。 但 label 沒有。

但是,文本框或隱藏字段以及大多數顯示/能夠保存數據或值的控件將繼續存在 - 標簽不是這些控件之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM