繁体   English   中英

获取具有新分配的ID的asp.net控件的值

[英]get value of asp.net controls with new assigned ID

我有一个ASP.NET Web应用程序,每当用户从特定的下拉列表中选择一个项目时,相应的控件都会相应地更新,例如,标签将被重命名,文本框的ID将被更改,等等。使用jQuery。

在根据用户的选择为文本框指定了新的ID之后,我希望将在这些文本框上输入的值传递给方法,我尝试执行Request.Form[controlid]但是它返回null 我以为这是因为我正在使用asp.net控件,所以我决定使用jquery动态创建文本框。但是它仍然会返回null。

我也尝试做类似的事情:

TextBox textBox = Page.FindControl(controlid) as TextBox

textBox.Text;

但是它仍然会使我返回null

有什么想法吗?

Page.FindControl仅在页面中直接查找控件,它不是递归的。 如果面板中有控件或其他控件,则它将无法正常工作。

看到这篇文章:

在ASP.NET中找到控件的更好方法

您需要使用Request.Form [controlname]而不是controlid。

服务器端FindControl将不起作用,因为它将仅识别服务器端已存在的控件。

提交表单后,像这样的Request.Form [“ controlname”]一样,正是name属性是Request.Form中的键。因为您正在使用javascript动态更改客户端上的文本框,所以ASP.NET不会能够使用Page.FindControl()找到它们。 在客户端,您将具有以下文本框:

<input type="textbox" id="t1" name="t1name" />

其值将作为Request.Form["t1name"]

您需要添加属性

runat="server"

在您的控件上,在.aspx页上。

然后在CodeBehind上使用[ControlName] .Text查找与您的控件相对应的当前文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM