Есть вот такой набор asp:TextBox :
<div class="span12">
<div class="row-fluid">
<div class="span6 text-right">Фамилия</div>
<div class="span6">
<asp:TextBox runat="server" ClientIDMode="Static" CssClass="input-xxlarge" ID="FirstName" onfocus="SaveValue(this)" onblur="IsTextBoxEmpty(this)" />
</div>
</div>
<div class="row-fluid">
<div class="span6 text-right">Имя</div>
<div class="span6">
<asp:TextBox runat="server" ClientIDMode="Static" CssClass="input-xxlarge" ID="Name" onfocus="SaveValue(this)" onblur="IsTextBoxEmpty(this)" />
</div>
</div>
<div class="row-fluid">
<div class="span6 text-right">Отчество</div>
<div class="span6">
<asp:TextBox runat="server" ClientIDMode="Static" CssClass="input-xxlarge" ID="LastName" onfocus="SaveValue(this)" onblur="IsTextBoxEmpty(this)" />
</div>
</div>
</div>
При загрузке страницы:
protected void Page_Load(object sender, EventArgs e)
{
MembershipUser usr = Membership.GetUser();
if (usr != null)
{
cmd.CommandText = "SELECT * FROM Users WHERE UserID=N'" + usr.UserID + "'";
DataTable tbl=new DataTable();
tbl.Clear();
tbl.Columns.Clear();
tbl.Load(cmd.ExecuteReader());
if (tbl.Rows.Count > 0)
{
FirstName.Text = tbl.Rows[0].ItemArray[1].ToString();
Name.Text = tbl.Rows[0].ItemArray[2].ToString();
LastName.Text = tbl.Rows[0].ItemArray[3].ToString();
}
}
}
JS, которые висят на отработку фокуса и его потерю
var old_value = "";
function SaveValue(control) {
var KID=document.getElementById("ID");
if (KID != null)
if(KID.value!="")
old_value = control.value;
}
function IsTextBoxEmpty(control) {
if (!control.value) {
$(control).tooltip('show');
} else {
var KID = document.getElementById("ID");
if (KID != null)
if ((old_value != control.value) && (KID.value != "")) {
$('#ValueChanged').val('true');
}
}
}
И есть кнопочка "далее", при нажатии на которую, если были изменены данные, пишем изменения в БД. НО! В свойстве Text у всех TextBox находятся старые значения, взятые, при загрузке страницы, из БД, а не значения введенные на форму.
Подскажите в чем проблема.
Элемент ID находится в MasterPage и заполняется при входе пользователя в систему
<asp:HiddenField runat="server" ID="ID" Value="" ClientIDMode="Static" />