2011-12-06 9 views
1

クリックしたときにDBを更新し、グリッドビューに表示されないようにする必要があるgridviewにリンクボタンがあります。これはアップデートパネルにもあります。 リンクボタンをクリックすると、DBが更新されますが、グリッドビューは更新されません。 グリッドビューとリンクボタンの両方が動的に生成されます。updatePanel内のlinkbuttonから行を削除した後にGridviewが更新されない

リンクボタンは、次のように作成されます。 'b'には、行内のデータの一意のIDが含まれています。 iを1とまったく同じプロパティを使用してのGridViewの外LinkBut​​tonコントロールを作成しようとしている

protected void lbRemove_Click(object sender, CommandEventArgs e) 
{       
     removeFromUser(Convert.ToInt32(e.CommandArgument.ToString()));    
     loadGridviews(Convert.ToInt32(ViewState["currUserID"])); 
     upnlUserDevices.Update(); 

if (e.Row.RowType == DataControlRowType.DataRow) 
{  
     LinkButton lbRemove = new LinkButton(); 
     lbRemove.ID = "removeLink" + b;    
     lbRemove.Command += new CommandEventHandler(lbRemove_Click); 
     lbRemove.Attributes.Add("onclick","return confirm('Are you sure?');"); 
     ....... 
     e.Row.Cells[6].Controls.Add((Control)lbRemove); 

lbRemove_Clickは結合AMDパネルを更新するgriviewをDBを更新し、呼び出すメソッドが含まれていグリッドビューでクリックすると、同じメソッドが呼び出され、グリッドビュー内でクリックされたときだけでなく、グリッドビューが更新されます。

あなたが助けることができる場合、この1つにスタックされたビット? ありがとう!大丈夫のようですあなたのコードを見てみると

答えて

0

私はこの作業を行う方法を見つけました。

私はLinkBut​​tonコントロールの.CausesValidationを設定する必要があり

=これが何をするのか、非常に偽

ない専門家が、それは私の問題を修正しません!

0

。私は2つのだけの提案と考えることができます:

  1. あなたは、メソッドのloadGridViews(の終わりにGridViewコントロールにDataBindをやっていることを確認してください)

    YourGridView.DataBind();

  2. あなたはバインディングを実行した後、右のUpdatePanelを更新していることを確認してください:

    upnlUserDevices.Update(); // upnlUserDevices GridViewをラップするUpdatePanelですか?

希望します。

+0

グリッドビューは更新パネルにあります – emong

+0

グリッドの再バインドチェックコード –

1

更新パネルでこのgridviewを入れ

+0

1. loadgridviews()の最後の行はデータバインドです 2. upnluserDevicesはgridviewを含むパネルです。 奇妙なことに、もし私がgridviewの外にリンクボタンを作成しても(それは同じ_clickメソッドを呼び出す更新パネル内にあります)、それは期待どおりに動作します – emong

関連する問題