我有一个网站,用户需要从主页添加和删除标题。标题存储在具有标题为“显示”(真或假)的列的数据库中,该列决定是否显示标题。我希望用户能够从主页添加或删除标题,因此创建了另一个页面,该页面创建了一个包含所有标题的表格以及一个包含“启用”和“禁用”的下拉列表。我希望这些下拉列表在用户更改下拉列表中的值时工作,数据库将被更新。只有我找不到如何为下拉列表提供更改事件。
有任何想法吗?我是否以正确的方式进行此操作,还是有更好的方法来做到这一点?
我有一个网站,用户需要从主页添加和删除标题。标题存储在具有标题为“显示”(真或假)的列的数据库中,该列决定是否显示标题。我希望用户能够从主页添加或删除标题,因此创建了另一个页面,该页面创建了一个包含所有标题的表格以及一个包含“启用”和“禁用”的下拉列表。我希望这些下拉列表在用户更改下拉列表中的值时工作,数据库将被更新。只有我找不到如何为下拉列表提供更改事件。
有任何想法吗?我是否以正确的方式进行此操作,还是有更好的方法来做到这一点?
首先,执行您的实际请求您将下拉菜单设置为自动回发,并添加一个处理程序以获取值并更新数据,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 查询。
第一的; 我个人会使用复选框为真/假值提供用户界面。您可以通过两种方式处理此问题:使用 ASP.NET 控件 (<asp:CheckBox ... />) 或纯 HTML 控件 (<input type="checkbox" .../>)。
在使用 ASP.NET 控件的情况下,您可以简单地双击控件(在设计视图中),以便为您创建 CheckedChanged 事件的事件处理程序。在使用 HTML 输入元素的情况下,您需要使用 JavaScript 在客户端处理 onclick 事件,并让 JavaScript 进行 AJAX 调用或类似调用,以便服务器可以更新数据库。我会说 ASP.NET 方法更简单。
很可能您最简单的方法是简单地使用 DataGrid,然后您可以轻松处理该事件。
作为替代方案,由于您只是在执行“显示”或“隐藏”选项,因此您可以只使用按钮,这可能会提供更好的 UI。(我发现这是真的,因为在某些浏览器中使用滚轮鼠标意外滚动了下拉列表项)
在您创建下拉列表的代码中,添加以下内容:
''// 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
希望有帮助!