在ListView2中ListView1的Selected_indexChanged()上动态绑定数据

时间:2016-04-14 17:17:10

标签: c# asp.net .net listview

我正在一个项目中工作,我需要在 listview2 中列出数据库项目项目所在的项目 listview1 已经。这是我的 listview1 代码;

 <asp:ListView    
 ID="ListView1"OnSelectedIndexChanged="ListView1_SelectedIndexChanged" runat="server">  
 <ItemTemplate>
 <a href='<%# Eval("Module_Redirect") %>'> <img src="<%# 
 Eval("Module_img") %>" /> </a> 
 </ItemTemplate>

.cs页面代码如下(尚未使用!)

 protected void ListView1_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (this.ListView1.SelectedIndex == 3)
        {
            SqlDataAdapter da2 = new SqlDataAdapter();
            da2.SelectCommand = new SqlCommand("select * from tbl_Forms where Module_ID=3 ", conn);
            DataTable dt2= new DataTable();
            da2.Fill(dt2);
            ListView2.DataSource = dt2;
            ListView2.DataBind();
        }
    }

我的观点是:如何获取listview1的选定项目模板并在listview2中显示相关记录?

1 个答案:

答案 0 :(得分:0)

你可以试试这个。

            using (SqlConnection con = new SqlConnection("YourConnectioString"))
            {
                using (SqlDataAdapter da2 = new SqlDataAdapter { SelectCommand = new SqlCommand("select * from tbl_Forms where Module_ID = @Module_ID ", con) })
                {
                    // as your using index as the parameter,,
                    da2.SelectCommand.Parameters.AddWithValue("@Module_ID", ListView1.SelectedIndex);

                    // or if your trying to pass parameter Module_ID from ListView1 DataKey ,, you can use SelectedDataKey
                    //da2.SelectCommand.Parameters.AddWithValue("@Module_ID", ListView1.SelectedDataKey);

                    using (DataTable dt2 = new DataTable())
                    {
                        con.Open();

                        da2.Fill(dt2);

                        ListView2.DataSource = dt2;
                        ListView2.DataBind();
                    }
                }
            }