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

时间:2010-01-06 16:12:00

标签: asp.net forms elements

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

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

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

但是出现了一个只读错误。

2 个答案:

答案 0 :(得分:2)

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

否则,您可以通过在代码中包含属性并使用数据绑定在aspx页面上从中提取值来动态设置值。

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

public string PropertyInCodeBehindClass
{
  get;
  set;
}

答案 1 :(得分:0)

请记住,在运行服务器代码时,客户端文本框不存在。托管该控件的html页面已作为新的请求提交给服务器,并且Web浏览器希望您回复一个全新的页面。在响应到达之前,浏览器将显示页面,但这只是一个方便的shell。保存文本框的DOM已经消失,您还没有创建新的文本框。您无法通过更新请求中的属性来直接更改您的响应。

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

  

总是两个;不多也不少。请求和回复。