编辑时无法更改文本框中的值

时间:2013-02-21 06:26:37

标签: c# asp.net

在Page-Load方法中,我设置了像这样的文本框的值

txtid.Value = pro.getId().ToString();
txtmodel.Text = pro.getModal();
txtname.Text = pro.getName();
cbCategory.SelectedValue = pro.getCategory();
txtprice.Text = pro.getPrice().ToString();
txtDescription.Text = pro.getDescription();

当我提交编辑产品时,我得到了值

string id = txtid.Value.ToString();
string modal = txtmodel.Text.ToString();
int category = int.Parse(cbCategory.SelectedValue);
string name = txtname.Text.ToString();
string description = txtDescription.Text.ToString();

我尝试更改与原始版本不同的值,但是当我发现它仍然保留原始值并保存到数据库时。

2 个答案:

答案 0 :(得分:0)

你在page load设置这些值的地方可能就是这个原因。
if (!Page.IsPostBack)内设置
如下

if (!Page.IsPostBack)
{
     txtid.Value = pro.getId().ToString();
     txtmodel.Text = pro.getModal();
     txtname.Text = pro.getName();
     cbCategory.SelectedValue = pro.getCategory();
     txtprice.Text = pro.getPrice().ToString();
     txtDescription.Text = pro.getDescription();
}

以及为什么使用txtid.Valuehidden-field

答案 1 :(得分:0)

在Asp.net中,对于每个点击事件,页面都会回发,所以将代码放入if(!ispostback) 页面加载中的preasent

if (!IsPostBack)
{
     txtid.Value = pro.getId().ToString();
     txtmodel.Text = pro.getModal();
     txtname.Text = pro.getName();
     cbCategory.SelectedValue = pro.getCategory();
     txtprice.Text = pro.getPrice().ToString();
     txtDescription.Text = pro.getDescription();
}