控制复选框

时间:2016-04-01 18:28:23

标签: javascript c# asp.net

我有一组复选框显示在页面上,它们代表设备的设置,
它们使用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>`

1 个答案:

答案 0 :(得分:0)

这取决于您是否要对同一项目使用多项设置,或者您是否要使用该项目的设置。您可以做的是,您创建了四个表,一个用于用户,一个用于设备,一个用于设置,一个用于用户指定的设置。

假设你有这些表:

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和up可以为空,以便您可以制作具有多个设置的项目。 那么你只需要做一个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());


 }

希望这能为你提供一些方向指示