我正在用C#编写ASP.NET项目。
UpdateUserInfo.aspx页面包含文本框和按钮。在pageLoad()方法中,我将一些文本设置到文本框中,当按钮被cicked时,我得到textbox的新值并将其写入DB。
问题是即使我更改了textbox textbox的值.Text()方法返回textbox的旧值(“sometext”)并将其写入DB。
这里的方法:
protected void Page_Load(object sender, EventArgs e)
{
textbox.text = "sometext";
}
void Btn_Click(Object sender,EventArgs e)
{
String textbox_text = textbox.text();// this is still equals "somevalue", even I change the textbox value
writeToDB(textbox_text);
}
那么,如何使文本框最初以某些值出现,但是当用户更改此值时,getText方法返回新更改的值并将其写入DB?
答案 0 :(得分:16)
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
textbox.text = "sometext";
}
}
回发是在按钮点击时将文本框文本属性设置回"somevalue"
,您只需按上述设置值一次。
回发解释:
在ASP Web开发的上下文中,回发是另一个名称 HTTP POST。在交互式网页中,发送表单的内容 到服务器处理一些信息。之后,服务器 将新页面发回浏览器。
这样做是为了验证用于登录的密码,在线处理 订单,或客户端计算机无法执行的其他此类任务 它自己的。这不应与刷新或后退动作相混淆 通过浏览器上的按钮。
阅读View State也有助于理解它们如何融合在一起。
答案 1 :(得分:2)
试试这个:
If (!IsPostBack)
{
textbox.text = "sometext";
}
答案 2 :(得分:1)
实际上,页面加载textbox
已重新启动
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
textbox.text = "sometext";
}
}
void Btn_Click(Object sender,EventArgs e)
{
String textbox_text = textbox.text;
writeToDB(textbox_text);
}
答案 3 :(得分:1)
请在页面加载事件....
中检查Page PostBack