Ext.NET (原 Coolite) 是 Ext JS 的 ASP.NET 伺服器端封裝。本文示範兩種彈出確認對話框並連結後端事件的方式:官方 `MessageBoxButtonsConfig` 複雜寫法與 `
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
[DirectMethod]
public void DoConfirm()
{
X.Msg.Confirm("提示", "確定要刪除嗎?", new MessageBoxButtonsConfig
{
Yes = new MessageBoxButtonConfig
{
Handler = "CompanyX.DoYes()",
Text = "確定"
},
No = new MessageBoxButtonConfig
{
Handler = "CompanyX.DoNo()",
Text = "取消"
}
}).Show();
}
[DirectMethod]
public void DoYes() { this.Label1.Text = "YES - 執行刪除邏輯"; }
[DirectMethod]
public void DoNo() { this.Label1.Text = "NO - 使用者取消"; }
</script>
<ext:ResourceManager runat="server" DirectMethodNamespace="CompanyX" />
<ext:Button runat="server" Text="確認刪除" Icon="Error">
<Listeners>
<Click Handler="CompanyX.DoConfirm()" />
</Listeners>
</ext:Button>
直接在按鈕的 `
<ext:ResourceManager runat="server" DirectMethodNamespace="CompanyX" />
<ext:Button runat="server" Text="確認刪除" Icon="Error">
<DirectEvents>
<Click OnEvent="ConfirmDelete">
<Confirmation ConfirmRequest="true" Title="提示" Message="您確定要刪除嗎?" />
</Click>
</DirectEvents>
</ext:Button>
protected void ConfirmDelete(object sender, DirectEventArgs e)
{
// 使用者已點擊「確定」,這裡執行真正刪除邏輯
X.Msg.Alert("操作結果", "您點擊了確定,後端刪除邏輯已執行!").Show();
// 實際刪除...
// DeleteRecord(...);
}
| 維度 | 方式一 (MessageBoxButtonsConfig) | 方式二 (DirectEvents Confirmation) |
|---|---|---|
| 程式碼量 | 多 (3+ DirectMethod) | 少 (1 個 OnEvent) |
| 邏輯集中度 | 分散在多個方法 | 集中在單一事件 |
| 適用場景 | 複雜多步驟對話流程 | 簡單確認/取消決策 |
| 維護性 | 較低 | 較高 |
// 警示
X.Msg.Alert("標題", "內容訊息").Show();
// 等待/載入中 (需手動關閉)
X.Msg.Wait("處理中...", "請稍候").Show();
// 關閉:X.Msg.Hide();
// 顯示 HTML 內容
X.Msg.Show(new MessageBoxConfig
{
Title = "HTML 內容",
Message = "粗體 與 紅字",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO
}).Show();