在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();
我尝试更改与原始版本不同的值,但是当我发现它仍然保留原始值并保存到数据库时。
答案 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.Value
是hidden-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();
}