0

我有带有 SelectedDateChanged 事件的 RadDatePicker 控件。当我更改日期时,事件会通过确认窗口触发。当我单击“取消”按钮时,RadDatePicker1_SelectedDateChanged 再次调用并显示两次确认窗口。当我单击“确定”按钮时,它工作正常。可能是什么问题呢?感谢您的任何建议。

  <telerik:RadDatePicker ID="RadDatePicker1" runat="server" AutoPostBack="true" OnSelectedDateChanged="RadDatePicker1_SelectedDateChanged" >
                         </telerik:RadDatePicker>


protected void RadDatePicker1_SelectedDateChanged(object sender, EventArgs e)
{
string radalertscript = "<script language='javascript'>function f(){ radconfirm('Are you sure?', confirmChange, 400, 100) ; Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
                     Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert33", radalertscript);
 }

这是Javascript函数

function confirmChange(args) {
    if (args) {
        __doPostBack("<%= hiddenButton1.UniqueID %>", "");
    }
4

1 回答 1

1

如果您只是使用它来呈现一些 javascript,这似乎是一个不必要的回发。

你能在客户端做你的确认对话框吗?

http://www.telerik.com/help/aspnet-ajax/calendar-on-date-selecting.html

<script type="text/javascript">
function ConfirmChange(sender, eventArgs) {
    var date = eventArgs.get_renderDay().get_date();
    var dfi = sender.DateTimeFormatInfo;
    var formattedDate = dfi.FormatDate(date, dfi.ShortDatePattern);
    eventArgs.set_cancel(!confirm("Are you sure you want to " +
    (eventArgs.get_isSelecting() ? "select " : "unselect ") +
    formattedDate + "?"));
}
</script>

<telerik:RadCalendar ID="RadCalendar1" runat="server">
    <ClientEvents OnDateSelecting="ConfirmChange" />
</telerik:RadCalendar>
于 2013-05-03T18:35:26.013 回答