Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
C# 从服务器端触发OnClient命令的最佳方法?_C#_Javascript_Ajax - Fatal编程技术网

C# 从服务器端触发OnClient命令的最佳方法?

C# 从服务器端触发OnClient命令的最佳方法?,c#,javascript,ajax,C#,Javascript,Ajax,我让自己陷入了一个小问题——我不确定在不重新构造代码的情况下是否有一个优雅的出路。我有一个正在运行的服务器端计时器,它需要模拟单击RadTabStrip的选项卡。 客户端我有以下方法: function OnClientTabSelected(sender, eventArgs) { FixSplitter($find(rightPaneID)); } FixSplitter依赖于一个附加控件,但: function FixSplitter(sender, eventArgs) {

我让自己陷入了一个小问题——我不确定在不重新构造代码的情况下是否有一个优雅的出路。我有一个正在运行的服务器端计时器,它需要模拟单击
RadTabStrip的选项卡。

客户端我有以下方法:

function OnClientTabSelected(sender, eventArgs)
{
    FixSplitter($find(rightPaneID));
}
FixSplitter依赖于一个附加控件,但:

function FixSplitter(sender, eventArgs)
{
    var multiPage = $find(multiPageID);
    ...
}
现在,在服务器端,我有以下内容:

public void DoTimerCycleTick(object sender, TimerEventArgs eventArgs)
{
    GlobalSettings globalSettings = StateManager.GetStates<GlobalSettings>();

    if( globalSettings.CycleEnabled )
    {
        if (!Equals(DateTime.Now.CompareTo(globalSettings.TimeLastCycled.AddMinutes(globalSettings.CycleInterval)), -1)) //CompareTo returns -1 when time is earlier than.
        {
            int nextIndex = SelectedIndex + 1;

            if( nextIndex == Tabs.Count)
            {
                nextIndex = 0;
            }

            SelectedIndex = nextIndex;
            LayoutManager.Instance.MultiPage.SelectedIndex = nextIndex;
            LayoutManager.Instance.MultiPageUpdatePanel.Update();
            //ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "KEY", "OnClientTabSelected();", true);
            globalSettings.TimeLastCycled = DateTime.Now;
        }
    }

    StateManager.SaveGlobalSettings(globalSettings);
}

难道你不能重载FixSplitter方法,一个接受这两个参数的方法,然后用所有3个参数找到并调用另一个方法吗?这样,您可以在需要时随时覆盖多页值

function FixSplitter(sender, eventArgs)
{
    var multiPage = $find(multiPageID);
    FixSplitter(sender, multiPage, eventArgs);
}

function FixSplitter(sender, multiPage, eventArgs)
{
    ...
}

如果由于某种原因无法重载,可以使用另一种表示法,如DoFixSplitter。

难道不能重载FixSplitter方法吗?该方法接受这两个参数,然后查找并调用另一个方法,并使用所有3个参数?这样,您可以在需要时随时覆盖多页值

function FixSplitter(sender, eventArgs)
{
    var multiPage = $find(multiPageID);
    FixSplitter(sender, multiPage, eventArgs);
}

function FixSplitter(sender, multiPage, eventArgs)
{
    ...
}
如果由于某种原因不能重载,可以使用另一种表示法,如DoFixSplitter