1

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);
      }
   } 
4

2 に答える 2

0

ポストバックでは、ページがロードされると、ポストバックされた非表示フィールドのビューになりますか、それともページのロード時に設定した値ですか? ポストバックで値を元の値にリセットしていない場合について心配する必要があるかもしれません。もう 1 つのポイントは、削除を行う場合、表示されているデータを更新しているのか、それとも同じであるのかということです。それらは私の提案です。

于 2008-11-27T23:57:22.600 に答える
0

ポストバックを行うと、値はポストバックされたものと同じです。updatepanel は更新されていないと思います。__doPostBack('UpdatePanel1','') を実行しようとしましたが、うまくいきませんでした。

于 2008-11-28T11:32:49.340 に答える