Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ASP.Net,如何使用服务器端代码写入客户端控件(文本框)?_Asp.net_Forms_Elements - Fatal编程技术网

使用ASP.Net,如何使用服务器端代码写入客户端控件(文本框)?

使用ASP.Net,如何使用服务器端代码写入客户端控件(文本框)?,asp.net,forms,elements,Asp.net,Forms,Elements,如果我有一个标准的HTML文本框:我可以使用Request.Form检索值 但是我如何从服务器端填充这个文本框呢?我试过了 Request.Form["txtTest"] = "blah"; 但出现只读错误。如果您希望通过服务器端的控件id(根据.net控件)访问该控件,则需要使其具有runat=“server”标记 否则,您可以通过在代码中设置一个属性,并在aspx页面上使用数据绑定(例如 <input type=text value="<%=PropertyInCodeBeh

如果我有一个标准的HTML文本框:我可以使用Request.Form检索值

但是我如何从服务器端填充这个文本框呢?我试过了

Request.Form["txtTest"] = "blah"; 

但出现只读错误。

如果您希望通过服务器端的控件id(根据.net控件)访问该控件,则需要使其具有runat=“server”标记

否则,您可以通过在代码中设置一个属性,并在aspx页面上使用数据绑定(例如

<input type=text value="<%=PropertyInCodeBehindClass %>" />

请记住,在服务器代码运行时,客户端文本框并不存在。承载控件的html页面已作为新请求提交给服务器,web浏览器希望您以全新页面进行响应。在响应到达之前,浏览器将保持页面显示,但这只是一个方便的shell。保存文本框的DOM已不存在,您尚未创建新的文本框。您不能通过更新请求中的属性来直接更改响应

这意味着您需要使用控件的服务器端表示。如果是服务器控件,您可以尝试
txtest.Text=“blah”否则,您需要找到生成该输入标记的位置,并适当地修改内容

总是有两个;不多也不少。请求和响应


作为旁注,这可能并不明显,如果控件设置了runat=“server”属性,那么您可以简单地通过txtText.Value引用该控件,而不是通过Request.Form[“txtTest”]我所处的情况是通过Javascript在客户端上动态创建控件。例如,我有一个文本框,如果用户正在键入并超过maxlength,我会动态创建一个文本框。这些文本框有一个绑定到它们的函数调用,因此,如果我将默认文本框设置为服务器端控件,其余文本框设置为客户端控件,那么当我从Javascript引用它们时,就存在通过它们的id引用它们的问题。我正在尝试在Page_Load中设置代码,因为如果用户创建5个文本框并保存到DB,我需要能够在重新登录时重新创建这些文本框。一个明显的问题-您考虑过使用文本区域吗?我不确定是否存在JavaScript问题,如果您想通过JavaScript访问服务器控件,您可以使用控件的ClientID属性,例如getElementById(“”).value,或者如果您使用JQuery,您可以使用ends with运算符绕过控件id上的ASP.NET前缀,例如$(“[id$='TextBoxId']”);如果你想把它们都放在页面加载中,让它们成为简单的HTML,你能不能在页面加载方法的代码中构建HTML,然后将HTML作为属性公开?我明白你的意思。但是,如果我添加runat=“server”属性,我的JS函数调用在试图查找ID时会崩溃,这是因为asp.net会破坏它。要解决这个问题,您可以使用AJM描述的服务器代码设置值,或者使用完整的服务器控件并将其ClientID属性写入javascript中。更好的是,也许您可以完全避免回发,并将其全部保存在javascript中。
public string PropertyInCodeBehindClass
{
  get;
  set;
}