如何使用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());