On Change事件为动态创建的Drop dow列表VB.NET

时间:2009-04-21 13:48:56

标签: vb.net events drop-down-menu handler

我有一个网站,用户需要在主页面上添加和删除标题。 标题存储在数据库中,其标题为“显示”(真或假),用于决定是否显示标题。我希望用户能够在主页面上添加或删除标题,因此创建了另一个页面,其中创建了包含所有标题的表格以及包含“启用”和“禁用”的下拉列表。我希望这些下拉列表能够在用户更改下拉列表中的值时更新数据库。只有我无法找到如何给下拉列表一个关于更改事件。

有什么想法吗? 我是以正确的方式解决这个问题还是有更好的方法来做到这一点?

4 个答案:

答案 0 :(得分:1)

首先,做你的实际要求 您可以将下拉列表设置为autopostback,并添加处理程序以获取值并更新数据,IE(尽管至少您的下拉列表将在转发器或数据网格中)

    Private Sub SetupDropdowns()
        Dim pDropDown As New DropDownList
        pDropDown.Items.Add("Yes")
        pDropDown.Items.Add("No")
        pDropDown.AutoPostBack = True
        AddHandler pDropDown.SelectedIndexChanged, AddressOf pDropDown_SelectedIndexChanged
    End Sub

    Private Sub pDropDown_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim value As String = CType(sender, DropDownList).SelectedValue
'Do something with value
    End Sub

更简单的方法是,如果直接访问SQL,则使用数据网格并将其数据绑定到SQL查询。

答案 1 :(得分:0)

首先;我个人会使用复选框为真/假值提供用户界面。您可以通过两种方式处理此问题:使用ASP.NET控件(&lt; asp:CheckBox ... /&gt;)或纯HTML控件(&lt; input type =“checkbox”... /&gt;)。< / p>

在使用ASP.NET控件的情况下,您只需双击控件(在设计视图中),即可为您创建CheckedChanged事件的事件处理程序。在使用HTML输入元素的情况下,您需要使用JavaScript处理客户端上的onclick事件,并让JavaScript进行AJAX调用或类似操作,以便服务器可以更新数据库。我会说ASP.NET方法更简单。

答案 2 :(得分:0)

最简单的方法就是简单地使用DataGrid,然后您可以轻松处理事件。

作为替代方案,由于您只是在执行“显示”或“隐藏”选项,因此您可以使用按钮,这可能会提供更好的UI。 (我发现这是真的,因为在某些浏览器中使用滚轮鼠标意外滚动下拉列表项目)

答案 3 :(得分:0)

在您创建下拉列表的代码中,添加以下内容:

''// You already have this code...

Dim oDropDown as New DropDown

''// Whatever other declarations you need...

AddHandler oDropDown.SelectedIndexChanged, _ 
AddressOf oDropDown_SelectedIndexChanged

通常,您可以从工具箱中为项目添加下拉列表,并且可以使用codeview下的下拉菜单选择SelectedIndexChanged事件。我们必须在此实例中手动执行此操作,因此请创建子例程:

Public Sub oDropDown_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    ''// Do whatever you need to do here

    ''// I sometimes do this to make code manipulation easier:
    Dim _sender as DropDown = CType(sender, DropDown)

End Sub

希望有所帮助!