[英]How do you use a return value from the server side (VB.NET) on the client side (JavaScript)?
[英]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.