Asp.net 防止accordion收割台中的控件触发accordion上卷/下卷行为
给定Ajax控件工具包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
<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);
}
先生,你是个天才。我还没试过,但很明显已经研究过了。我不会