HtmlInputHidden フィールドを持つ単純なページがあります。私は Javascript を使用してその値を更新し、ページをポストバックするときに、その HtmlInputHidden フィールドの値を読み取りたいと考えています。その HtmlInputHidden フィールドの Value プロパティは、ポストバック時にデフォルト値 (ページが作成されたときの値であり、Javascript によって反映された値ではありません) です。また、HtmlInputHidden フィールドを ScriptManager.RegisterHiddenField(Page, "MyHtmlImputHiddenField", "initialvalue") で登録しようとしましたが、(javascript を介して) 値が変更されたことを検査できますが、「initialvalue」しか読み取れません。
行 ID をハードコーディングしようとしましたが、驚いたことに、ポストバック後、グリッドビューは削除前とまったく同じでしたが、レコードはデータベースから削除されました。(私は databind メソッドを呼び出しました)。
protected void gridViewDelete(object sender, GridViewDeleteEventArgs e)
{
bool bDelete = false;
bool bCheck = false;
if (hfControl.Value != "1")
{
// check relationship
bCheck = validation_method(.......);
if (bCheck)
{
bDelete = true;
}
}
else
{
hfControl.Value = "";
bDelete = true;
}
if (bDelete)
{
//process delete
}
else
{
string script = string.Empty;
script += " var x; ";
script += " x = confirm('are u sure?'); ";
script += " if (x){ " ;
script += " document.getElementById('hfControl').value = '1'; ";
script += " setTimeOut(__doPostBack('gridView','Delete$"
+ e.RowIndex + "'),0);";
script += " } ";
ScriptManager.RegisterClientScriptBlock(this,
Page.GetType()
, "confirm"
, script
,true);
}
}