我有一组复选框显示在页面上,它们代表设备的设置,
它们使用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>`
答案 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());
}
希望这能为你提供一些方向指示