Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# 使用Javascript的多用户控件_C#_Asp.net_Javascript - Fatal编程技术网

C# 使用Javascript的多用户控件

C# 使用Javascript的多用户控件,c#,asp.net,javascript,C#,Asp.net,Javascript,我试图用一个组合框和一个小的时钟图像来模拟一个简单的timepick用户控件。在用户控件中,我键入以下代码: function SetFocus() { var comboBox = $find("<%=cboTime.ClientID %>"); var input = comboBox.get_inputDomElement(); input.focus(); } 函数SetFocus(){ var组合框=$find(“”); var inpu

我试图用一个组合框和一个小的时钟图像来模拟一个简单的timepick用户控件。在用户控件中,我键入以下代码:

function SetFocus() {
    var comboBox = $find("<%=cboTime.ClientID %>");
    var input = comboBox.get_inputDomElement();
    input.focus();      }
函数SetFocus(){
var组合框=$find(“”);
var input=comboBox.get_inputdemelement();
input.focus();}
cboTime是combobox控件,后面有一个小时钟的图像 我将图像的单击事件绑定到此函数

如果我的页面上只有一个用户控件,那么一切都很好

如果我添加另一个具有不同名称的用户控件,那么无论我单击哪个图像,最后一个组合框都会获得焦点

我知道发生了什么…我只是需要一个解决办法。 当呈现页面时,它会创建两个具有组合框客户端id的相同脚本。问题是,前面的所有实例都覆盖了前置实例,因为它们的名称相同

有人能解决这个问题吗?这一定很简单,但我到处都找不到答案


谢谢

您需要更改
SetFocus()
方法,以便将组合框的客户端ID作为参数:

function SetFocus(cboClientId) {
  var comboBox = $find(cboClientId);
  var input = comboBox.get_inputDomElement();
  input.focus();
}
这意味着您必须更改调用
SetFocus()
方法的代码。如果我理解正确,这是在映像上的客户端单击事件处理程序中完成的。在这种情况下,可以在控件的代码隐藏中设置图像的
onclick=“…”
部分。例如,类似这样的东西(未测试):

ASCX:

然后,您可以使用
SetFocus()
方法将其放入外部JS文件中(并将其包含在您的ASCX中)

<asp:DropDownList id="cboTime" .../>
<asp:Image id="img" .../>
img.Attributes.Add("onclick",
  string.Format("javascript:SetFocus('{0}');", cboTime.ClientID));