我正在项目中使用DevExpress树形图控件。其中一列允许点击时调用javascript函数的图标。当我们的一个单选按钮索引时,我们现在需要不调用其中一个函数!= 0;
在ClientSideEvents类中,我将CustomButtonClick属性设置为运行的javascript,具体取决于列中单击的按钮。相关代码:
<ClientSideEvents
CustomButtonClick="function(s, e)
{
switch(e.buttonID)
{
case 'scMarkRead':
treeWatches.PerformCallback(e.buttonID + '|' + e.nodeKey);
break;
case 'scMarkUnread':
treeWatches.PerformCallback(e.buttonID + '|' + e.nodeKey);
break;
case 'scStrike':
treeWatches.GetNodeValues(e.nodeKey, "Database", addDB);
treeWatches.PerformCallback('scMarkRead|' + e.nodeKey);
break;
case 'scCreateTask':
var fields = ["Database", "Filename", "Name"];
treeWatches.GetNodeValues(e.nodeKey, fields, createTask);
break;
case 'scDelete':
treeWatches.PerformCallback(e.buttonID + '|' + e.nodeKey);
}
在'scStrike'的情况下,我不想调用treeWatches.PerformCallback .... line如果radlstGroup.SelectedIndex!= 0.在其他地方,我能够将代码包装在条件&lt;%if else { }%&gt;它工作正常,但这是我不想显示的控件。当我尝试下面的例子时,页面加载但我的树形图不会扩展。
<ClientSideEvents
CustomButtonClick="function(s, e)
{
var url = 'http://gcs.regscan.com/strike/Strike.aspx?db=';
switch(e.buttonID)
{
case 'scMarkRead':
treeWatches.PerformCallback(e.buttonID + '|' + e.nodeKey);
break;
case 'scMarkUnread':
treeWatches.PerformCallback(e.buttonID + '|' + e.nodeKey);
break;
case 'scStrike':
treeWatches.GetNodeValues(e.nodeKey, "Database", addDB);
<% if (radlstGroup.SelectedIndex == 0)
{%>
treeWatches.PerformCallback('scMarkRead|' + e.nodeKey);
<%} %>
break;
case 'scCreateTask':
var fields = ["Database", "Filename", "Name"];
treeWatches.GetNodeValues(e.nodeKey, fields, createTask);
break;
case 'scDelete':
treeWatches.PerformCallback(e.buttonID + '|' + e.nodeKey);
}
最糟糕的情况我确定我可以将if块放在控件的整个div周围,并将相同的代码放在else中没有行,但是再次重复100行代码似乎很愚蠢一条线。有什么好的建议吗?