0

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」テーブルの名前(「すべての一時的な差異」、「すべての永久的な差異」など)を使用して、上記と同様のことを行うにはどうすればよいですか。助けてください。

4

1 に答える 1

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() メソッドを 1 回実行してから結果をキャッシュすることをお勧めします。


CachingSqlConnectionのリンク

于 2012-07-24T21:48:41.993 に答える