Я хотел бы использовать файл ресурсов, чтобы отобразить диалоговое окно, которое отображается на клике, я попробовал ниже, но я получаю результат на снимке экрана:
<asp:Button ID="editview" runat="server" Text="<%$ Resources:btnEditViewText%>" CssClass="buttonlink"
OnClientClick="return confirm('<%$ Resources:btnEditViewText%>');"
CommandName="editview"
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Id")%>'/>
Я видел, как некоторые люди предлагают установить это в коде, но этот элемент управления завернут в ретранслятор, и я могу получить его только после того, ItemCommand
событие ItemCommand
будет ItemCommand
, что требует подтверждения диалога подтверждения.
Это похоже на уловку 22, и из идей, каких-нибудь предложений?
Спасибо, Бен, это сработало
protected void rptVessels_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Button button = (Button)e.Item.FindControl("editview");
button.OnClientClick = String.Format("return confirm('{0}')", GetLocalResourceObject("alertEditVesselText").ToString());
}
Это мой код, и он работает! Но я также предпочитаю использовать код для решения, особенно для отдельных элементов управления.
В моем проекте я использую это во вложенных репитерах, поэтому мне не нужно использовать метод OnItemDataBound. Это очень просто...
OnClientClick='<%#String.Concat("if ( !confirm(\u0027", Resources.Resource.AreYouSureToDelete, "\u0027)) return false;") %>'
Я нашел лучшее решение
<script type="text/javascript">
function DeleteItem() {
if (confirm(document.getElementById('<%=hdelete.ClientID%>').value)) {
return true;
}
return false;
}
</script>
<asp:HiddenField runat="server" ID="hdelete" Value="<%$Resources:Resources, Confiemdelete %>" />
<asp:Button ID="btnmergewithname" runat="server" Text="<%$Resources:Resources, Delete %>" OnClientClick="return DeleteItem()"/>