RydenChoi Ответов: 2

Как использовать JavaScript подтвердить, коробка и оповещения в код позади?


Привет.

Я делаю доску с помощью GridView, и у меня есть некоторые проблемы.

Когда я пытаюсь удалить элементы, отмеченные флажком checked item, мне это нравится.

если флажок снят, и нажмите кнопку Удалить, появится предупреждающее сообщение "пожалуйста, проверьте элементы"

Или установите флажок и нажмите кнопку Удалить, подтвердите сообщение "Check item will deleted!!"

и выберите Да выбранные элементы будут удалены.

Как я могу сделать свой код? Я попробовал ниже,

Когда флажок снят, предупреждающее сообщение отображается хорошо, но я пытаюсь удалить отмеченные элементы

нет никакого подтверждающего сообщения, все еще показывается подтверждающее сообщение.....

Пожалуйста, проверьте мой код и дайте мне совет.

Что я уже пробовал:

охраняемых недействительными lnbDel_Click(объект отправителя, EventArgs в электронной)
{
UserBoardDAC dac = новый UserBoardDAC();

по каждому элементу (GridViewRow расти в grvList.Строк)
{
Флажок ЧК = (флажок)растут.FindControl("ЧК");
если (ЧК.Проверен)
{
строковое сообщение = @"
< script type= 'text/javascript'>
ВАР delConfirm = подтвердите('пункт регистрации будет удален!! Вы уверены?);
если (delConfirm)
{
вернуть true;
}
ещё
{
возвращать false;
}
< / script>";
этот.ClientScript.RegisterClientScriptBlock (это.GetType (), "script", сообщение);
int boardItemID = преобразовать.ToInt32 (расти.Ячейки[0]. Текст);
ЦАП.DeleteSelectedContents(boardItemID);
}
ещё
{
строковое сообщение = @"
< script type= 'text/javascript'>
предупреждение ("пожалуйста, проверьте товары");
< / script>";
этот.ClientScript.RegisterClientScriptBlock (это.GetType (), "script", сообщение);
}
}
//PutGridView();
GetCustomPaging(1);

}

2 Ответов

Рейтинг:
18

Vincent Maverick Durano

Подтверждение должно быть обработано на стороне клиента. Вот краткий пример:

Предположим, что у вас есть это объявление столбцов GridView:

<columns>
   <asp:templatefield xmlns:asp="#unknown">
   <HeaderTemplate>
      <asp:button id="ButtonDelete" runat="server" text="Delete" />
   </HeaderTemplate>
   <itemtemplate>
      <asp:checkbox id="CheckBox1" runat="server" />
   </itemtemplate>
   </asp:templatefield>
   <asp:boundfield datafield="CustomerID" headertext="ID" readonly="True" xmlns:asp="#unknown" />
   <asp:boundfield datafield="CompanyName" headertext="Company" xmlns:asp="#unknown" />
   <asp:boundfield datafield="ContactName" headertext="Name" xmlns:asp="#unknown" />
   <asp:boundfield datafield="ContactTitle" headertext="Title" xmlns:asp="#unknown" />
   <asp:boundfield datafield="Address" headertext="Address" xmlns:asp="#unknown" />
   <asp:boundfield datafield="Country" headertext="Country" xmlns:asp="#unknown" />
</columns> 


Затем вы можете написать функцию JavaScript для обработки подтверждения, как показано ниже:

<script type="text/javascript" language="javascript">
        function ConfirmOnDelete(item)
        {
		if(IsValidToDelete()){
          		if (confirm("The following item(s) will be deleted: " + item + "Continue?")==true)
            			return true;
          		else
            		return false;
		}
		else{
			alert("Please check an item.");
		}
        }

	function IsValidToDelete() {
    		var valid = false;
    		var gv = document.getElementById("<%=GridView1.ClientID%>");
    		for (var i = 0; i < gv.getElementsByTagName("input").length; i++) {
        		var node = gv.getElementsByTagName("input")[i];
        		if (node != null && node.type == "checkbox" && node.checked) {
            			valid = true;
            			break;
        		}
    		}

    		return valid;
	}
</script>


Теперь вам нужно подключить JavaScript onclick событие для кнопки Delete для вызова ConfirmOnDelete() функция. Чтобы сделать это, вы могли бы сделать это так на мероприятии RowDataBound:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
        if (e.Row.RowType == DataControlRowType.Header) //check for RowType
        {
            //access the LinkButton from the Header TemplateField using FindControl
            Button b = (Button)e.Row.FindControl("ButtonDelete"); 
            //attach the JavaScript function
            b.Attributes.Add("onclick", "return ConfirmOnDelete();"); 
        }
}


Или самый простой способ-это напрямую вызвать ConfirmOnDelete() функция декларативно выглядит следующим образом:
<asp:button id="ButtonDelete" runat="server" text="Delete" xmlns:asp="#unknown">
	    OnClick="ButtonDelete_Click"
	    OnClientClick="return ConfirmOnDelete();" />
</asp:button>


Обратите внимание на призыв к ConfirmOnDelete() функция в OnClientClick событие.

Для удаления на стороне сервера я бы посоветовал вам обратиться к этому примеру: GridView Multiple Delete с флажком и подтверждением[^]


Karthik_Mahalingam

5! за ваши усилия

Vincent Maverick Durano

Еще раз спасибо, Картик :)

Karthik_Mahalingam

добро пожаловать :)

RydenChoi

Идеальное Решение!!!
Наконец - то я сделал это из вашего кода и комментария.
Я очень ценю тебя!! :)

Vincent Maverick Durano

Я рад быть полезным ;)

Рейтинг:
0

F-ES Sitecore

Несколько возможных методов перечислены здесь

Запрос пользователя подтвердить, что он хочет продолжить действие | ASP.NET форумы[^]

Одна вещь, которую вы должны иметь в виду, заключается в том, что когда пользователь нажимает кнопку Удалить и она входит в ваш серверный код, ваш серверный код не может выполнить код на клиенте, поэтому вы не можете заставить свой серверный код отправить javascript клиенту, дождаться нажатия кнопки, а затем продолжить.