0

データベースからのデータを表示するグリッドがあり、左側にチェックボックス付きのカスタム列があり、削除するレコードを選択し、サーバー側でレコードを削除するイベントをトリガーするドロップダウン リストがあります。それらのレコードを削除します。「よろしいですか? OK とキャンセル」のような確認ダイアログを表示したいのですが、どうすればよいですか? 何か考えはありますか?

私はこれをします :

 if(ddlAction.SelectedValue == "Delete")
 {
     string id = string.Empty;
     int i = 0;
     List<int> idx = new List<int>();

     foreach (GridViewRow rowitem in gvDept.Rows)
     {
        CheckBox itemchk = (CheckBox)rowitem.FindControl("cbSelectOne");

        if (itemchk != null & itemchk.Checked)
        {
             id += rowitem.Cells[3].Text.ToString() + ',';
              idx.Add(i);
         }

          i = i + 1;
      }

      id = id.Trim(",".ToCharArray());
      List<string> objRemoveKeys = id.Split(',').ToList();

      if (objRemoveKeys.Count > 0)
      {     
         ddlAction.Attributes.Add("OnChange", "javascript:return confirmDeletion('Are you sure you would like to remove the selected items?');"); // this part not working.

         AirAsiaLinqDataContext LinqDataCtx = new AirAsiaLinqDataContext();

         var record = from a in LinqDataCtx.departements
                      where objRemoveKeys.Contains(a.departementcode)
                      select a;

         LinqDataCtx.departements.DeleteAllOnSubmit(record);
         LinqDataCtx.SubmitChanges();


         for (int j = 0; j < idx.Count; j++)
         {
             gvDept.DeleteRow(idx[j]);
         }
    }

   ddlAction.SelectedValue = "";

}

4

3 に答える 3

0

これはコード ビハインド (C#) コードのように見えます。ダイアログはクライアント側で発生します。これは、jQuery (または通常の JavaScript コード) を使用して比較的簡単に行うことができます。または、Ajax Control Toolkit のようなものを使用することもできますConfirmButton

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ConfirmButton/ConfirmButton.aspx

プロセスをもう少し制御するには、JuiceUI を試してみることもできます: http://juiceui.com/controls/dialog

于 2013-05-03T05:52:24.937 に答える
0

確認のためのアラートを表示するだけでなく、ユーザーが行を選択したかどうかも確認する必要があります。以下のコードは両方を実現します。

JavaScript 関数:

function checkIfSelected() {
    if (yourGrid.GetSelectedRowCount() == 0) {
        alert("You must select atleast one.");
        return false;
    }
    else {
        if (confirm("Are you sure you want to proceed?")) { // This is what you want
        }
        else {
            return false;
        }
    }
}

あなたのドロップダウンリスト:

<asp:DropDownList ID="ddlAction" onChange="javascript:if( checkIfSelected() == false){return false};" AutoPostBack="true" runat="server" OnSelectedIndexChanged="yourID_SelectedIndexChanged">

于 2013-05-03T06:14:26.697 に答える