控制复选框的下拉列表

dropdownlists that control checkboxes

本文关键字:下拉列表 复选框 控制      更新时间:2023-11-28

我有一组复选框,它们显示在一个页面上,表示设备的设置,
它们是使用ObjectdataSource和IENumerable方法显示的,该方法带来了不同的设置我用设备名称创建了一个DDL,我想做的是当用户选择一个设备名称时,该设备的复选框会被选中。使用AutoPostBack=True,每次选择不同的设备时都会重新加载页面。设备及其设置存储在一个表中。做这件事最好的方法是什么!我似乎找不到任何类似的问题。我可以使用JavaScript,C#感谢您的帮助。`

             EnableViewState="true"  >
            <asp:ListItem Text="-Select-" Value="Select"  Enabled="true"/> 
        </asp:DropDownList>
         <asp:SqlDataSource ID="AllequipmentSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>" 
            SelectCommand="SELECT * FROM [Names]">

<input type="button" value="Select All" class="markerSelectAll"/>
<input type="button" value="Unselect All" class="markerUnSelectAll"/>
<asp:ObjectDataSource runat="server" ID="SettingsObjectDataSource" SelectMethod="GetDistinctequipmentSettingNames"` 
    TypeName="class"></asp:ObjectDataSource>`

这取决于您是要对同一项使用多个设置,还是要对该项使用设置。您可以创建四个表,一个表用于用户,一个用于设备,一个为设置,另一个为用户指定的设置。

假设你有这些表格:

User: userId, Name
Equipment: equipmentId, Name
Setting: settingID, settingName, equipmentId(so you can have item spesific settings)

然后对于你的用户设置表,你可以做一些类似于的事情

UserSettings: usId, userId, equipmentId, settingId, settingId2, settingId3

使settingId2及以上可以为null,以便您可以制作具有多个设置的项目。那么你只需要做一个sql命令:

insert into UserSettings VALUES (userId, equipmentId, settingId ..... ) 

为了将它们加载到你的组合框中,你可以进行

select settingName from Settings where equipmentId = 'equipment your have' 

然后只需使用for循环将它们插入不同的框中,如下所示:

foreach(DataRow row in YourDataTable.Rows)
 { 
    comboBox.Items.Add(row["settingName"].ToString());

 }

希望这能给你一些在中走向哪个方向的指针