0

私はこのボタンイベントを持っています:

protected void AddDetails_Click(object sender, EventArgs e)
    {


        DataSetTableAdapters.SelectFriendsTableAdapter sft = new DataSetTableAdapters.SelectFriendsTableAdapter();
        try
        {
            sft.AddFriend(current, newFriend, false);
        }
        catch
        {
            error.Text = "Something happened. Bummer!";
        }

    }

セクションではtry、データベースにエントリを追加しています。ページには、対応する値を持つラベル/テキストボックスがあります。

すべて正常に動作します。ただし、この送信ボタンをクリックした後に変更を確認するには、ページを更新する必要があります。

if(!IsPostBack)PageLoad コードの先頭に追加しましたが、別のページにアクセスするか、変更を確認するために戻ってくる必要があります。

何か案は?

ありがとう。


返信ありがとうございます。私はListViewを使用しています:

protected void Page_Load(object sender, EventArgs e)
    {
     if (!IsPostBack)
        {
            DataSetTableAdapters.SelectFriendsTableAdapter sdt = new DataSetTableAdapters.SelectFriendsTableAdapter();
            DataTable tab = sdt.SelectFriends();
            ListView1.DataSource = tab;
            ListView1.DataBind();

        }
    }

であるため、ListView のコンテンツが更新されます。

4

2 に答える 2

1

ページを更新したくない場合で、asp.net Webフォームを使用している場合は、UpdatePanelを使用してすべてのコントロールをその中に配置することができます...これにより、フォーム/ディスプレイで行われた変更が保持されます。情報を提出します。データがどのように更新/変更されたかを具体的に述べていないため、フォームは変更/新しいデータの送信時にあると想定しています。

更新パネルを使用したくない場合は、ページがポストバックされたときに、「newFriend」オブジェクトの値で更新する UI コントロールの値を設定する必要があります (私は、変更された値があります)。

于 2013-06-17T06:44:15.110 に答える
-1

それを見つけた!

この問題の解決策は、送信ボタンのクリック イベントの最後に次のコードを追加することです。

Server.Transfer("currentpage.aspx");
于 2013-06-18T19:59:23.903 に答える