Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 防止accordion收割台中的控件触发accordion上卷/下卷行为_Asp.net_Ajaxcontroltoolkit - Fatal编程技术网

Asp.net 防止accordion收割台中的控件触发accordion上卷/下卷行为

Asp.net 防止accordion收割台中的控件触发accordion上卷/下卷行为,asp.net,ajaxcontroltoolkit,Asp.net,Ajaxcontroltoolkit,给定Ajax控件工具包accordion: <ajaxToolkit:Accordion runat="server" SelectedIndex="0" HeaderCssClass="accordionHeader" HeaderSelectedCssClass="accordionHeaderSelected" ContentCssClass="accordionContent" AutoSize="None" FadeTransiti

给定Ajax控件工具包accordion:

<ajaxToolkit:Accordion runat="server"
    SelectedIndex="0"
    HeaderCssClass="accordionHeader"
    HeaderSelectedCssClass="accordionHeaderSelected"
    ContentCssClass="accordionContent"
    AutoSize="None"
    FadeTransitions="true"
    TransitionDuration="250"
    FramesPerSecond="40"
    RequireOpenedPane="false"
    SuppressHeaderPostbacks="true">

在HeaderTemplate中有一个与ConfirmButtonExtender配对的按钮:

    <HeaderTemplate>
        <asp:Button 
            ID="PushPlanButton" 
            Text="Push" 
            runat="server" 
            OnClick="PushPlanButtonPressed" />

        <ajaxToolkit:ConfirmButtonExtender 
            ID="ConfirmButtonExtender1" 
            runat="server" 
            TargetControlID="PushPlanButton" 
            ConfirmText="Please confirm" />
    </HeaderTemplate>

当点击按钮时,模态消息框出现“请确认”,正如预期的那样

当用户解除它时,手风琴认为它被点击并关闭了活动面板,这是不需要的


有没有办法抑制这种行为?

我认为最好的选择是根据您的需要调整AjaxControlToolkit源代码。在这种情况下,您只需要在
confirButtonBehavior.pre.js
文件中进行位更改。重写
\u单击
方法如下:

_onClick: function (e) {
    /// <summary>
    /// Button's click handler to display the confirmation dialog
    /// </summary>
    /// <param name="e" type="Sys.UI.DomEvent">
    /// Event info
    /// </param>

    if (this.get_element() && !this.get_element().disabled) {
        if (this._ConfirmOnFormSubmit) {
            // Note that this behavior was triggered (for later)
            Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior = this;
        } else {
            // Display the dialog and cancel the click if necessary
            if (!this._displayConfirmDialog()) {
                e.preventDefault();
                e.stopPropagation(); // added to prevent event bubbling
                return false;
            }
            else if (this._oldScript) {

                if (String.isInstanceOfType(this._oldScript)) {
                    eval(this._oldScript);
                }
                else if (typeof (this._oldScript) == 'function') {
                    this._oldScript();
                }
            }
        }
    }
}
\u单击:函数(e){
/// 
///按钮的单击处理程序显示确认对话框
/// 
/// 
///事件信息
/// 
if(this.get_元素()&&!this.get_元素()已禁用){
如果(本确认书提交){
//请注意,此行为已触发(稍后)
Sys.Extended.UI.confirButtonBehavior.\u clickedBehavior=this;
}否则{
//如有必要,显示对话框并取消单击
如果(!this.\u displayConfirmDialog()){
e、 预防默认值();
e、 stopPropagation();//添加此选项以防止事件冒泡
返回false;
}
else if(此.\u旧脚本){
if(String.isInstanceOfType(this.\u oldScript)){
评估(这是旧脚本);
}
else if(typeof(this.\u oldScript)==“function”){
这个;
}
}
}
}
}
但如果由于某些原因无法调整库源,则可以应用另一种方法。在页面上添加以下脚本:

function pageLoad()
{
     var extender = $find("<%= ConfirmButtonExtender1.ClientID %>");
     $removeHandler(extender.get_element(), "click", extender._clickHandler);

     extender._clickHandler = Function.createDelegate(extender, function (e) {
          if (this.get_element() && !this.get_element().disabled) {
               if (this._ConfirmOnFormSubmit) {
                    // Note that this behavior was triggered (for later)
                    Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior = this;
               } else {
                    // Display the dialog and cancel the click if necessary
                    if (!this._displayConfirmDialog()) {
                         e.preventDefault();
                         e.stopPropagation();
                         return false;
                    }
                    else if (this._oldScript) {

                         if (String.isInstanceOfType(this._oldScript)) {
                              eval(this._oldScript);
                         }
                         else if (typeof (this._oldScript) == 'function') {
                              this._oldScript();
                         }
                    }
               }
          }
     });
     $addHandler(extender.get_element(), "click", extender._clickHandler);
}
函数pageLoad()
{
变量扩展程序=$find(“”);
$removeHandler(extender.get_元素(),“单击”,extender.\u clickHandler);
扩展器。\u clickHandler=Function.createDelegate(扩展器,函数(e){
if(this.get_元素()&&!this.get_元素()已禁用){
如果(本确认书提交){
//请注意,此行为已触发(稍后)
Sys.Extended.UI.confirButtonBehavior.\u clickedBehavior=this;
}否则{
//如有必要,显示对话框并取消单击
如果(!this.\u displayConfirmDialog()){
e、 预防默认值();
e、 停止传播();
返回false;
}
else if(此.\u旧脚本){
if(String.isInstanceOfType(this.\u oldScript)){
评估(这是旧脚本);
}
else if(typeof(this.\u oldScript)==“function”){
这个;
}
}
}
}
});
$addHandler(extender.get_element(),“click”,extender.\u clickHandler);
}

我认为最好的选择是根据您的需要调整AjaxControlToolkit源代码。在这种情况下,您只需要在
confirButtonBehavior.pre.js
文件中进行位更改。重写
\u单击
方法如下:

_onClick: function (e) {
    /// <summary>
    /// Button's click handler to display the confirmation dialog
    /// </summary>
    /// <param name="e" type="Sys.UI.DomEvent">
    /// Event info
    /// </param>

    if (this.get_element() && !this.get_element().disabled) {
        if (this._ConfirmOnFormSubmit) {
            // Note that this behavior was triggered (for later)
            Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior = this;
        } else {
            // Display the dialog and cancel the click if necessary
            if (!this._displayConfirmDialog()) {
                e.preventDefault();
                e.stopPropagation(); // added to prevent event bubbling
                return false;
            }
            else if (this._oldScript) {

                if (String.isInstanceOfType(this._oldScript)) {
                    eval(this._oldScript);
                }
                else if (typeof (this._oldScript) == 'function') {
                    this._oldScript();
                }
            }
        }
    }
}
\u单击:函数(e){
/// 
///按钮的单击处理程序显示确认对话框
/// 
/// 
///事件信息
/// 
if(this.get_元素()&&!this.get_元素()已禁用){
如果(本确认书提交){
//请注意,此行为已触发(稍后)
Sys.Extended.UI.confirButtonBehavior.\u clickedBehavior=this;
}否则{
//如有必要,显示对话框并取消单击
如果(!this.\u displayConfirmDialog()){
e、 预防默认值();
e、 stopPropagation();//添加此选项以防止事件冒泡
返回false;
}
else if(此.\u旧脚本){
if(String.isInstanceOfType(this.\u oldScript)){
评估(这是旧脚本);
}
else if(typeof(this.\u oldScript)==“function”){
这个;
}
}
}
}
}
但如果由于某些原因无法调整库源,则可以应用另一种方法。在页面上添加以下脚本:

function pageLoad()
{
     var extender = $find("<%= ConfirmButtonExtender1.ClientID %>");
     $removeHandler(extender.get_element(), "click", extender._clickHandler);

     extender._clickHandler = Function.createDelegate(extender, function (e) {
          if (this.get_element() && !this.get_element().disabled) {
               if (this._ConfirmOnFormSubmit) {
                    // Note that this behavior was triggered (for later)
                    Sys.Extended.UI.ConfirmButtonBehavior._clickedBehavior = this;
               } else {
                    // Display the dialog and cancel the click if necessary
                    if (!this._displayConfirmDialog()) {
                         e.preventDefault();
                         e.stopPropagation();
                         return false;
                    }
                    else if (this._oldScript) {

                         if (String.isInstanceOfType(this._oldScript)) {
                              eval(this._oldScript);
                         }
                         else if (typeof (this._oldScript) == 'function') {
                              this._oldScript();
                         }
                    }
               }
          }
     });
     $addHandler(extender.get_element(), "click", extender._clickHandler);
}
函数pageLoad()
{
变量扩展程序=$find(“”);
$removeHandler(extender.get_元素(),“单击”,extender.\u clickHandler);
扩展器。\u clickHandler=Function.createDelegate(扩展器,函数(e){
if(this.get_元素()&&!this.get_元素()已禁用){
如果(本确认书提交){
//请注意,此行为已触发(稍后)
Sys.Extended.UI.confirButtonBehavior.\u clickedBehavior=this;
}否则{
//如有必要,显示对话框并取消单击
如果(!this.\u displayConfirmDialog()){
e、 预防默认值();
e、 停止传播();
返回false;
}
else if(此.\u旧脚本){
if(String.isInstanceOfType(this.\u oldScript)){
评估(这是旧脚本);
}
else if(typeof(this.\u oldScript)==“function”){
这个;
}
}
}
}
});
$addHandler(extender.get_element(),“click”,extender.\u clickHandler);
}

先生,你是个天才。我还没试过,但很明显已经研究过了。我不会