J'ai un scénario où je veux lier trois colonnes différentes à la liste de contrôle
Datatable dt = GetDataTable("Select col1,col2,col3 from mytable where id={0}");
Je peux obtenir les données via ma méthode GetDataTable, et maintenant je veux lier ces données à la liste de contrôle et les valeurs col1, col2 et col3 sont des valeurs booléennes,
Checkboxlist devrait pouvoir se lier à ces valeurs bool. Et aussi j'ai besoin de savoir comment obtenir les valeurs sélectionnées afin de mettre à jour ma base de données.
Mettre à jour : -
Les exemples de données seraient comme - personnels, professionnels, autres
DataTable serait -
Personal Business Other
True False True
Je dois représenter ceci dans la checkbox
Je fais quelque chose comme ça et je suis sûr qu'il existe un moyen meilleur / facile de le faire
foreach (ListItem item in chkBox.Items)
{
item.Selected = ShouldItemBeSelected(item.Text);
}
private bool ShouldItemBeSelected(string value)
{ string id = getId();
string query = string.Format("select {0} FROM [dbo].[mytable] where ID="{1}"",value, id);
bool result = false;
DataTable dt = GetDataTable(query);
foreach (DataRow row in dt.Rows)
{
result = Convert.ToBoolean(row[value]);
}
return result;
}
Merci!
Réponses:
0 pour la réponse № 1Quelque chose comme ça je pense
page .aspx
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cbIsActive" runat="server"
Text="<%# Eval("IsActive") == DBNull.Value ? false : Convert.ToBoolean(Eval("IsActive"))%>">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<%-- Checkbox List To binding to sqldatasourc--%>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSourceID="SqlDataSource1"
DataTextField="IsMultiRole" DataValueField="IsMultiRole">
</asp:CheckBoxList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WaltonCrmConnectionString %>"
SelectCommand="select top 10 IsMultiRole from Users"></asp:SqlDataSource>
et fichier .cs
GridView1.DataSource = DbUtilities.GetDataTableFromSqlQuery("select top 10 IsMultiRole,IsActive from Users");
GridView1.DataBind();
où IsActive est un champ de bits nullable dans le serveur SQL 2014
EDIT: CheckBox est lié à C'est actif
et checkboxlist est IsMultiRole