1

在页面加载方法中,我为这样的文本框设置了值

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();

我尝试更改与原始值不同的值,但是当我出错时,它仍然保持原始值并保存到数据库。

4

2 回答 2

0

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

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();
}
于 2013-02-21T07:08:52.973 回答
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.Value它是一个hidden-field

于 2013-02-21T06:34:24.090 回答