0

データベースからのデータを表示するGridviewを備えたメインページがあります。グリッドビューにはボタンがあり、このボタンをクリックするとダイアログが表示され、選択した行を編集できます。ダイアログはaspxクラスとして作成されます。データを編集してダイアログを閉じるときに、メインページのGridViewを更新して、編集したデータが表示されるようにします。これどうやってするの?

データを編集してダイアログを閉じるための私のコードは次のとおりです。

 protected void editButton_Click(object sender, EventArgs e)
        {
            string alias = Request.QueryString["alias"];
            string custid = Request.QueryString["custid"];
            controller.EditDeliveries(custid, alias, tdaysField.Text, thoursField.Text, ttypeField.Text, pdaysField.Text, phoursField.Text, ptypeField.Text);
            ClientScript.RegisterClientScriptBlock(GetType(), "onUpload", "<script type='text/javascript'> window.close();</script>");
        }

誰か助けてもらえますか?さらにコードを表示する必要がある場合は、教えてください。

4

1 に答える 1

3

データソースを再度設定し、ポストバックで再バインドするだけです

   gvMyGrid.DataSource = myData; //Fresh from the database
   gvMyGrid.DataBind();          //Bam, fresh data

編集:ああ、それがポストバックのソースである別のコントロールである場合は、バブルイベントを使用して更新をトリガーできます。

2番目の編集:ダイアログページにメインページにそのグリッドを更新するように指示するには、次のようにします。

    RaiseBubbleEvent(this, new CommandEventArgs("DataUpdated", "This could be null, or I could be a message to let the user know things are updated")); 

次に、メインページで

   protected override bool OnBubbleEvent(object sender, EventArgs e)
    {

        if (e is CommandEventArgs)
        {
            var args = (CommandEventArgs)e;
            //Could use args.CommandArgument here
            switch(args.CommandName)
            {
                  case "DataUpdated":

                     gvMyGrid.DataSource = myData; 
                     gvMyGrid.DataBind();          
                     return true;                  //Handled the event LIKE A BOSS
            }
        }
        return false;                              //I didn't handle this event
    }
于 2012-12-18T10:26:12.903 に答える