如何使用jQuery从asp.net服务器控件传递值?
我用后面的代码更新了代码。 我正在用标签contrtol做一些动态的事情。
我有以下jQuery代码工作(传递’test’的值),但我想要做的是传递标签控件(lblNames)的值。我正在使用标签控件来收集上传的文件名字。有办法吗?
jQuery的:
$(document).ready(function () { $("#btnUpload").click(function () { $("#Notes", top.document).val('test'); }); });
ASPX代码:
代码背后:
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click Dim fileExt As String fileExt = System.IO.Path.GetExtension(FileUpload1.FileName) If (fileExt ".exe") Then Dim fileNames As New List(Of String) Try Dim hfc As HttpFileCollection = Request.Files lblFiles.Text = String.Empty lblNames.Text = String.Empty For i As Integer = 0 To hfc.Count - 1 Dim hpf As HttpPostedFile = hfc(i) If hpf.ContentLength > 0 Then fileNames.Add(hpf.FileName) hpf.SaveAs(Server.MapPath("/directory") & "\" & System.IO.Path.GetFileName(hpf.FileName)) lblFiles.Text += "File: " & hpf.FileName & " " & " Uploaded Successfully!
" lblNames.Text += hpf.FileName & ", " Else lblWarning.Text = "Please choose a file to upload." End If Next i Catch ex As Exception End Try
您可以轻松地将ID插入到脚本中并以此方式将其拉出:
$(document).ready(function () { $("#btnUpload").click(function () { $("#Notes", top.document).val( $("#<%= lblNames.ClientID %>").text() ); }); });
你可以通过这样做获得控制客户端的价值
$("#<%=lblNames.ClientID%>").val()
或者它可能是.text()
我不记得我的头顶是什么asp:标签呈现!!
希望有所帮助
据我所知,您只需要将标签文本的值插入此jQuery方法以更改Notes表单元素的值。
要在页面加载时执行此操作,您可以执行以下操作:
$(document).ready(function () { $("#btnUpload").click(function () { $("#Notes", top.document).val('<%= lblNames.Text %>'); }); });
这样就足够了,或者你正在用标签做一些动态的事情?
asp:Label渲染为id为lblNames的span。 你可以尝试这样的事情
$(’#lblNames’)。html()代替‘test’
编辑:当你调用这个点击事件时,它是一个整页回复还是部分? 如果它是部分的,您使用更新面板还是AJAX来处理它?
根据您发布的内容,按钮的单击事件似乎只是使用文件名和条目后的逗号更新标签的值。
您是否也希望解析价值以将其分解为单个部分? 我问这个因为我还不清楚“#Notes”到底是指什么。
(我自己还在学习很多但是如果可以的话,我很想帮忙!)
原版的
您可以为标签分配一个类,例如class =“uploadedNames”,您应该可以像这样访问它的值:
var myValues = $(".uploadedNames").text();
所以你的标签将列为:
所以最终的结果是:
$(document).ready(function () { var myValues = $(".uploadedNames").text(); $("#btnUpload").click(function () { $("#Notes", top.document).val(myValues); }); });
或者保持简单,只需:
$(document).ready(function () { $("#btnUpload").click(function () { $("#Notes", top.document).val( $(".uploadedNames").text() ); }); });
并且,正如其他人所提到的,如果您更喜欢坚持使用实际ID而不是类:
$(document).ready(function () { $("#btnUpload").click(function () { $("#Notes", top.document).val( $("#<%= lblNames.ClientID %>").text() ); }); });
直接使用ID时,如果不使用ClientID,请记住,呈现的ID是自动生成的,具体取决于您运行的.NET版本(4.0引入静态名称,可预测,自动等)通过类名访问它只会消除对ID在html源中呈现方式的担忧,以及为您提供一次响应多个事件/控件的选项。
如果您不在脚本中混合asp.net代码,请设置标签控件的CssClass属性,如下所示:
然后,在您的脚本中,您可以使用此类名称获取标签控件的innertext:
$("#Notes", top.document).val($('.lblNames:first').text());