2011-01-21 6 views
2

を無視しますGridViewのテキストボックスは、ページを完全にリフレッシュします。私の理解は、UpdatePanelにTextBoxesをラップすると、代わりに部分リフレッシュをトリガーするということでした。私はこれを誤解していますか?ASP.NETテキストボックスは、Iは次のように定義された項目テンプレートとのGridViewを有する更新パネル

私はテキストボックスに付属のいくつかのjavascriptを持っている:質問に、最新のコメントに反応して

更新

   currentTextBox.Attributes.Add("onFocus", String.Format("document.getElementById('RowTextBox').value = {0}; document.getElementById('ColTextBox').value = {1}; this.style.backgroundColor='#ffeb9c';", i, j)); 
       currentTextBox.Attributes.Add("onBlur", "this.style.backgroundColor='#ffffff'"); 

それだけでテキストボックスの色を設定し、それがどこにあるセーブグリッドビュー。私はそれを持っているメニューとボタンでupdatepanelが期待どおりに機能します、それは完全なポストバックを引き起こすテキストボックスです。更新コードを見たら

+0

いいえ、部分的なポストバックだけを引き起こすと誤解しているわけではありませんが、ページライフサイクル全体が引き続き適用されます。期待どおりの行動をしていないのですか? – David

+0

そして、コードの代わりにマークアップで宣言されただけの理由はありますか? – David

+0

すべてがデータベーステーブルから追加されているので、私はコードの中でそれを行います。 – InTheFlatField

答えて

0

まあ、残念ながら私はモデルを作ることができませんでしたここに記載されている仕事。代わりに、私はupdatepanelの内側に目に見えないボタンを置き、javascriptでテキストボックスonchangeイベントをクリックしていました。なぜこのメソッドが動作し、TextChangedのメソッドが動作しないのか分かりませんが、それが終了する方法です。

0

が、私は私の答えを修正した...

のUpdatePanelは、それがに応答すべき制御する指示する必要があり。トリガーを追加することでこれを行うことができます。あなたの場合、GridView内にTextBoxコントロールがあります。これらのテキストボックスはオートポストバックに設定されています。 GridView内にあるので、GridViewはRowCommandのように扱っていると思います。あなたの元のコードを使用して、私はあなたが以下を追加推薦:

UpdatePanel updatePanel = new UpdatePanel(); 
updatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional; 

gridView.OnRowCommand = "GridViewRowCommand"; 

AsyncPostbackTrigger newTrigger = new AsyncPostbackTrigger(); 
newTrigger.ControlID = gridView.ControlID; 
updatePanel.Triggers.Add(newTrigger); 

あなたの分離コードの中で、あなたはこのような何かをする必要があります:

protected void GridViewRowCommand(object sender, RowCommandEventArgs e) 
{ 
    var myTextBox = e.Row.FindControl("myTextBoxID"); 
    // Do some work 
} 
+0

あなたの答えに応じて、元の質問を編集しました。 – InTheFlatField

+0

Bummer。上記の@samizと同様に、ページにScriptManagerの設定がありますか? – chprpipr

+0

マスターページ(このページから派生したもの)には、次のようなスクリプトマネージャがあります。 InTheFlatField

関連する問題