从SQL数据库中的表中检索复选框名称(值)到ascx文件中

时间:2012-07-24 21:37:35

标签: c# asp.net ascx

我的标签名称存储在SQL数据库中名为“Importtabs”的表中。而不是硬编码我导入的选项卡的名称,我想从上面提到的表中检索名称,并将它们设置为ascx端的复选框列表的值。这是我之前使用的硬编码版本:

<div style="overflow: auto;"> 
<asp:CheckBoxList ID="CheckBoxList1" BorderStyle="None" runat="server" RepeatColumns="3">
<asp:ListItem>All Temporary Differences</asp:ListItem>
<asp:ListItem>All Permanent Differences</asp:ListItem>
<asp:ListItem>All BS Only Differences</asp:ListItem>
<asp:ListItem>RTA Temp</asp:ListItem>
<asp:ListItem>RTA Perm</asp:ListItem>
<asp:ListItem>RTA Temp Other</asp:ListItem>
<asp:ListItem>RTA Perm Other</asp:ListItem>
<asp:ListItem>RTA Other Expense</asp:ListItem>
</div>

如何使用上面显示的类似内容,但使用数据库中“Importtabs”表中的名称(“所有临时差异”,“所有永久性差异”等)。请帮忙。

1 个答案:

答案 0 :(得分:0)

假设您已经知道如何从数据库中检索数据,可以使用此代码将该数据放入CheckBoxList

protected void Page_Load(object sender, EventArgs e)
{
    // do not rebind the list if this is a postback; user input would be lost 
    if (this.IsPostBack)
    {
        return;
    }
    CheckBoxList1.DataSource = GetValues();
    CheckBoxList1.DataBind();
}

private string[] GetValues()
{
    // get data from database, with 'select <columnName> from Importtabs'
    // populate array
    // return values as a string[]
}

这将导致数据库出现大量命中,因此您可能希望运行一次GetValues()方法,然后缓存结果。


CachingSqlConnection

的链接