我有以下TextChanged
事件 -
protected void DataList1_SelectedTextChanged(object sender, EventArgs e)
{
TextBox chk = (TextBox)sender;
DataListItem item = (DataListItem)chk.NamingContainer;
TextBox txt = (TextBox)DataList1.Items[item.ItemIndex].FindControl("aTextBox");
string text = txt.Text;
WebService1 ws = new WebService1();
ws.updateA(text, newText)
}
ws.updateA
网络方法需要text
这是文本框中的原始文本,而newText
是更改后的事件被触发后的文本。
我的问题是如何区分原始文本和在web方法中使用的newText,因为方法是用新文本更新数据表使用原始文件进行更新?
SQL是 -
UPDATE table SET term='" + newText + "' WHERE termText= '" + text + "'
答案 0 :(得分:0)
您应该使用主键来标识要更新的行。在where子句中通过文本字符串更新不是一个好习惯。
在触发SelectedTextChanged
事件时,控件的旧值会在页面生命周期中被长时间覆盖。
如果了解旧值至关重要,则应使用ViewState
在PostBacks中保留。