ダッシュの提案に従って、さらに読んで、単純なアプローチのように見えるものを実装しました。非表示のボタンをに追加し、UpdatePanel
jQuery から非表示のボタンの onclick を呼び出します。
(更新されたプロファイル情報が jQuery UI ダイアログを介して収集されていたことに言及しましたか?)
関連する ASPX コードは次のとおりです。
<!-- Change User Profile info -->
<div id="profileBasicInfoDiv">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="True" UpdateMode="Conditional" Visible="True">
<ContentTemplate>
<asp:Label ID="lblProfileUserName" runat="server" Text="Name"></asp:Label>
<asp:Button ID="btnUserProfileUpdatePanel1" runat="server" Text="Button" Visible="True" onclick="btnUserProfileUpdatePanel1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<br />
<a href="#" id="hlShowBasicInfo">Change my details</a>
</div> <!-- End of profileBasicInfoDiv -->
..jQuery:
$("#profileChangeBasicInfo").dialog({
modal: true,
buttons: { 'Save': function () { $(this).dialog('close'); }
},
close: function () { UpdateProfile(); }
});
function UpdateProfile() {
var jsonText = "{'Bio':'" + $("[id$='MainContent_Bio']").val() + "','FirstName':'" + $("[id$='MainContent_FirstName']").val() + "'} ";
sendData(jsonText);
$("#MainContent_btnUserProfileUpdatePanel1").click();
};
非表示ボタンに対応する onclick イベント ハンドラーは次のとおりです。
protected void btnUserProfileUpdatePanel1_Click(object sender, EventArgs e)
{
UpdatePanel1.Update();
((Label)(lblProfileUserName)).Text = Profile.FirstName + " " + Profile.LastName;
}
これは最も洗練された方法ではないかもしれませんが、うまく機能しており、その過程で多くのことを学びました。ご意見やご感想をお待ちしております。
ありがとうございました。