Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
Asp.net 从复合Web控件内的控件回发_Asp.net_Vb.net_Custom Controls_Postback_Composite Controls - Fatal编程技术网

Asp.net 从复合Web控件内的控件回发

Asp.net 从复合Web控件内的控件回发,asp.net,vb.net,custom-controls,postback,composite-controls,Asp.net,Vb.net,Custom Controls,Postback,Composite Controls,假设我们有一个复合web控件,其中包含一个combobox和一个textbox。是否可以将控件功能内置到文本框中,以便当文本框中的文本发生更改时,它会发回并将值作为选项添加到组合框中 我知道我可以在文本框中添加一个“onchange”处理程序,并使用Javascript实现一些功能,但这并不是我真正想要做的。有没有一种方法可以像这样: Protected Sub txt1_TextChanged(sender As Object, e As System.EventArgs) Handles t

假设我们有一个复合web控件,其中包含一个combobox和一个textbox。是否可以将控件功能内置到文本框中,以便当文本框中的文本发生更改时,它会发回并将值作为选项添加到组合框中

我知道我可以在文本框中添加一个“onchange”处理程序,并使用Javascript实现一些功能,但这并不是我真正想要做的。有没有一种方法可以像这样:

Protected Sub txt1_TextChanged(sender As Object, e As System.EventArgs) Handles txt1.TextChanged
    combo1.items.add(txt1.Text)
End Sub

在web控件代码中,它连接到textbox的TextChanged事件?

简而言之,是的,您应该能够做到这一点

我不知道VB需要什么语法,但我在C#中多次做过类似的事情。对于C#,您可以将偶数处理程序的名称添加到文本框的标记中,并将文本框上的自动回发设置为true。然后,代码隐藏事件处理程序执行您需要它执行的任何操作

通常,我还在web控件上定义一个自定义事件,并让textbox的事件处理程序也引发这个自定义事件。这提供了让使用控件的页面也对事件进行操作的选项

编辑:

下面是一个DropDownList的示例,它是在一组Active Directory域中查找用户的控件的一部分。如果用户更改了他们选择的域,我们希望它在新域上搜索以前输入的值

加价:

<asp:DropDownList ID="ddl_Domain" runat="server" onselectedindexchanged="ddl_Domain_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
或者在通过代码动态添加子控件的情况下,我使用了以下语法:

DropDownList ddl = new DropDownList();
ddl.ID = "ddl";
ddl.DataTextField = "Text";
ddl.DataValueField = "Value";
ddl.SelectedIndexChanged += This_SelectedValue_Changed;
ddl.AutoPostBack = true; 

正如我所说,我不确定如何使用VB的
句柄
语法来实现这一点,但这应该是可能的。

简而言之,是的,您应该能够做到这一点

我不知道VB需要什么语法,但我在C#中多次做过类似的事情。对于C#,您可以将偶数处理程序的名称添加到文本框的标记中,并将文本框上的自动回发设置为true。然后,代码隐藏事件处理程序执行您需要它执行的任何操作

通常,我还在web控件上定义一个自定义事件,并让textbox的事件处理程序也引发这个自定义事件。这提供了让使用控件的页面也对事件进行操作的选项

编辑:

下面是一个DropDownList的示例,它是在一组Active Directory域中查找用户的控件的一部分。如果用户更改了他们选择的域,我们希望它在新域上搜索以前输入的值

加价:

<asp:DropDownList ID="ddl_Domain" runat="server" onselectedindexchanged="ddl_Domain_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
或者在通过代码动态添加子控件的情况下,我使用了以下语法:

DropDownList ddl = new DropDownList();
ddl.ID = "ddl";
ddl.DataTextField = "Text";
ddl.DataValueField = "Value";
ddl.SelectedIndexChanged += This_SelectedValue_Changed;
ddl.AutoPostBack = true; 

正如我所说,我不知道如何使用VB的
句柄
语法来实现这一点,但这应该是可能的。

我使用的是asp:TextBox,所以我不处理标记;我有一个使用RenderControl呈现到页面的控件。类似“txt1.OnTextChanged…”的内容似乎无法访问。你能举个例子让我更好地理解你的意思吗?“我能读C#,所以应该没问题。”戴夫对反应慢表示抱歉,他暂时处于离线状态。添加了一个示例,但我使用的是asp:TextBox,所以我不处理标记;我有一个使用RenderControl呈现到页面的控件。类似“txt1.OnTextChanged…”的内容似乎无法访问。你能举个例子让我更好地理解你的意思吗?“我能读C#,所以应该没问题。”戴夫对反应慢表示抱歉,他暂时处于离线状态。已添加示例。