데이터베이스에 "이름"항목 (예 : 영화로 코미디, 액션, 공포)을 표시하는 SQL Server에 데이터 체크 박스 목록이 있습니다. 확인란 상자는 필터로 작동하므로 사용자가 확인란을 선택하면 관련 동영상이 표시됩니다.확인란을 선택하면 데이터 목록에 항목이 표시됩니다.
나는 체크 박스 목록에 데이터 바인딩을 관리해야했습니다. 확인란의 값은 데이터베이스의 "CategoryId"에 바인딩되는 값을가집니다. 그러나 체크 박스를 선택하면 영화 포스터 (이미지)의 데이터리스트를 표시하는 방법을 더 진행하는 방법에 대해서는 알지 못합니다.
예를 들어, "Comedy"체크 박스를 선택하면 해당 장르에 속하는 영화 포스터 (데이터리스트)가 나타납니다. 코드 뒤에
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DVDShopConnectionString %>"
SelectCommand="SELECT [ProductID], [Title], [Image1FileName] FROM [Product]"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:DVDShopConnectionString %>"
SelectCommand="SELECT * FROM [Category]"></asp:SqlDataSource>
<br />
<asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True"
DataSourceID="SqlDataSource2" DataTextField="Name" DataValueField="CategoryID"
onselectedindexchanged="CheckBoxList1_SelectedIndexChanged">
</asp:CheckBoxList>
<asp:datalist runat="server" DataKeyField="ProductID" DataSourceID="SqlDataSource1"
RepeatColumns="4" ID="DataList1" >
<ItemTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# Eval("Image1FileName", "~/ProductImages/{0}") %>' />
<br />
<asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />
<br />
<br />
<br />
</ItemTemplate>
</asp:datalist>
:
private SqlDataReader getReader()
{
//get connection string from web.config
string strConnectionString = ConfigurationManager.ConnectionStrings["DVDShopConnectionString"].ConnectionString;
SqlConnection myConnect = new SqlConnection(strConnectionString);
string strCommandText = "SELECT CategoryID, Name from Category";
SqlCommand cmd = new SqlCommand(strCommandText, myConnect);
myConnect.Open();
//DataList1.DataSource = reader;
DataList1.DataBind();
// CommandBehavior.CloseConnection will automatically close connection
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
if (CheckBoxList1.Items[i].Selected == true)
{
//items should be filter here..
}
}
}
어떤 제안이나 아이디어가 크게 감사합니다 여기에
내가 default.aspx에, 지금까지 수행 한 코드입니다.