ASP.NET AJAX は初めてで、ステータス テキスト ボックス/ボタンを取得して、ユーザーがポストバックなしでステータスを更新できるようにしようとしています。「enablepartialrendering」が「true」に設定されたマスターページにスクリプトマネージャータグがあります。コンテンツ ページに updatepanel タグもあります。これを試してみると、ページがポストバックされ、何も起こりません。私は何を間違っていますか?ASP.NET 3.5 / C# を使用しています。ありがとう。
マスター ページには、フォーム タグのすぐ下に次のスクリプト タグがあります。
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
</asp:ScriptManager>
また、ページのどこかに ContentPlaceHolder が存在します。
<asp:ContentPlaceHolder ID="ContentCenter" runat="server">
</asp:ContentPlaceHolder>
ContentPlaceHolder に関連付けられたコンテンツ タグは次のようになります。
<asp:Content ContentPlaceHolderID="ContentCenter" runat="server">
<div class="divContainer">
<div class="divContainerBox">
<div class="divContainerTitle">
Network Activity</div>
<div class="divContainerRow">
<asp:Panel ID="pnlStatusUpdate" runat="server">
<asp:TextBox Width="400" Height="50" Style="font-size: 9px; padding-left: 0px; padding-right: 0px;"
ID="txtStatusUpdate" runat="server"></asp:TextBox>
<br />
<asp:Button Style="font-size: 9px; padding-left: 0px; padding-right: 0px;" ID="BtnAddStatus"
runat="server" Text="Add" /><br />
<asp:Repeater ID="repFilter" runat="server">
<ItemTemplate>
<asp:Label ID="lblMessage" runat="server" Text='<%# ((Alert)Container.DataItem).Message %>'></asp:Label>
</ItemTemplate>
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
</asp:Repeater>
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</asp:Panel>
</div>
</div>
</div>
</asp:Content>
そして、これがサーバーメソッドです。何も返さず、データベースの「SaveStatusUpdate」にデータを送信します。次にページがポストバックされると、新しい更新が表示されます。私が望むのは、ポストバックがなく、入力された入力テキスト (および友人が入力した可能性のあるテキスト) がステータス更新ボタンをクリックしたときに表示されることです。
protected void BtnAddStatusClick(object sender, EventArgs e)
{
var su = new StatusUpdate
{
CreateDate = DateTime.Now,
AccountId = _userSession.CurrentUser.AccountId,
Status = txtStatusUpdate.Text
};
_statusRepository.SaveStatusUpdate(su);
_alertService.AddStatusUpdateAlert(su);
}
「AddStautsUpdateALert」メソッドがどのように見えるかを尋ねる人がいると思うので、ここにあります。「_alertMessage」はステータス更新です。AJAX を使用して表示するにはどうすればよいですか?
public void AddStatusUpdateAlert(StatusUpdate statusUpdate)
{
_alert = new Alert
{
CreateDate = DateTime.Now,
AccountId = _userSession.CurrentUser.AccountId,
AlertTypeId = (int) AlertType.AlertTypes.StatusUpdate
};
_alertMessage = "<div class=\"AlertHeader\">" + GetProfileImage(_userSession.CurrentUser.AccountId) +
GetProfileUrl(_userSession.CurrentUser.UserName) + " " + statusUpdate.Status + "</div>";
_alert.Message = _alertMessage;
SaveAlert(_alert);
SendAlertToFriends(_alert);
}