close

今天在逛保哥的網站時,看到一個很方便的東西,可以讓整個專案裡,在TemplateField下的CommandName

設定成"delete"時,變自動加上confirm的javascript提醒,這樣可以省去許多的時間,讓程式碼變的更精簡~~

 

首先,你必須在你的網站專案加上 App_Browsers 目錄,並新增一個 ControlAdapters.browser 檔案 (檔名可以改,副檔名不能改),並輸入以下內容:

<browsers>
  <browser refID="Default">
    <controlAdapters>
      <adapter controlType="System.Web.UI.WebControls.Button" adapterType="ButtonAdapter" />
      <adapter controlType="System.Web.UI.WebControls.LinkButton" adapterType="ButtonAdapter" />
      <adapter controlType="System.Web.UI.WebControls.ImageButton" adapterType="ButtonAdapter" />
    </controlAdapters>
  </browser>
</browsers>

這裡定義了 3 個不同的按鈕控制項配置器(Control Adapter),並且都指定到 ButtonAdapter 類別。

然後再到 App_Code 目錄下新增一個  ButtonAdapter.cs 類別檔,程式也很短,如下:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public class ButtonAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter {
    protected override void OnPreRender(EventArgs e)
{ IButtonControl btn = Control as IButtonControl; // mDelete 是我自訂的 CommandName 名稱,你也可以改成你自己的名稱 if (btn.CommandName == "Delete" || btn.CommandName == "mDelete") { Control.Attributes["onclick"] = "if(!confirm('你確定要刪除嗎?')) return false;"; } base.OnPreRender(e); } }

這樣就完成哩~~

 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 lansilote 的頭像
    lansilote

    慢慢來比較快

    lansilote 發表在 痞客邦 留言(0) 人氣()