Javascript 为什么这个ClientScript抛出一个未定义的错误

Javascript 为什么这个ClientScript抛出一个未定义的错误,javascript,c#,asp.net,webforms,Javascript,C#,Asp.net,Webforms,我有一个带有输入字段的控件,当用户按enter键时,我希望回发重定向到控件所在的页面,并滚动到该输入字段在页面上的位置。当我不以编程方式命名函数时,这是一个可以正常工作的函数。它生成一个对使用它的控件唯一的函数,并将该函数添加到控件的onkeypress 代码 问题 当我点击回车键时,我得到一个错误handle\u uniqueIdentifierName未定义。当我将函数名从handle{0}()更改为硬编码名称handle();这个函数是定义好的,可以正常工作,但是所有的控件都有相同的函数,

我有一个带有输入字段的控件,当用户按enter键时,我希望回发重定向到控件所在的页面,并滚动到该输入字段在页面上的位置。当我不以编程方式命名函数时,这是一个可以正常工作的函数。它生成一个对使用它的控件唯一的函数,并将该函数添加到控件的
onkeypress

代码 问题
当我点击回车键时,我得到一个错误
handle\u uniqueIdentifierName
未定义。当我将函数名从
handle{0}()
更改为硬编码名称
handle()
;这个函数是定义好的,可以正常工作,但是所有的控件都有相同的函数,这不是我想要的。当用户点击enter键时,如何定义我的函数。

为什么不希望它们都使用相同的函数?这不像脚本是动态的,您每次都将使用不同的名称运行相同的确切函数。@Seano666我需要每个控件都有不同的
\uuu doPostBack
参数。如果我使用同一个函数,那么该函数将有一个硬编码值。能否将_doPostBack参数作为第二个参数传递给泛型函数。示例“句柄(事件,id);_doPostBack(id,);”
protected void KeepInView(HtmlInputControl anchor)
{

    string anchorName = anchor.ClientID;
    string defaultEnterScript = @"
                    function handle_{0}(e) {{
                        if (e.key === 'Enter')
                        {{
                            __doPostBack('{1}', '');
                        }}
                    }};";

    string scrollTo = @"
                        $(function(){{
                               console.log('scrolling');
                                var top = document.getElementById('ELEMENT').offsetTop;
                                window.scrollTo(0, top);
                         }});";

    ScriptManager.RegisterClientScriptBlock(this, GetType(), "defaultEnter", String.Format(defaultEnterScript,anchorName, anchorName), true);
    ScriptManager.RegisterClientScriptBlock(this, GetType(), "scrollTo", String.Format(scrollTo), true);

    anchor.Attributes["onkeypress"] = String.Format("handle_{0}(event);", anchorName);
}