繁体   English   中英

ASP.NET中的Gridview搜索框

[英]Gridview Search box in ASP.NET

我使用文本框和按钮控件制作了搜索框,以在GridView中搜索数据,以获取我正在使用ObjectDataSource的数据源。 在ObjectDataSource类中,我正在使用参数化过程从数据库表中选择数据,但是这里发生了问题, ObjectDataSource期望参数类具有一个值 我已经用硬编码的类解决了这个问题,如果它的null给出参数值等于空格,那么它将很好地工作。

如果有另一种方法可以解决此问题而无需对类进行硬编码,则任何答案都会有所帮助,谢谢

这是我的ObjectDataSource选择类

public static List<T_Penerbit> GetSearchPenerbit(string Cari)
        {
            if (string.IsNullOrWhiteSpace(Cari))
            {
                Cari = " ";
            }

            List<T_Penerbit> listSearchPenerbit = new List<T_Penerbit>();

            string cs = ConfigurationManager.ConnectionStrings["cs_perpustakaan"].ConnectionString;

            using (SqlConnection con = new SqlConnection(cs))
            {
                SqlCommand cmd = new SqlCommand("spGetPenerbitBySearch", con);
                cmd.CommandType = CommandType.StoredProcedure;

                SqlParameter paramSearch = new SqlParameter("@parameter", Cari);
                cmd.Parameters.Add(paramSearch);

                con.Open();
                SqlDataReader rdr = cmd.ExecuteReader();

                while (rdr.Read())
                {
                    T_Penerbit penerbit = new T_Penerbit();
                    penerbit.ID = Convert.ToInt32(rdr["ID"]);
                    penerbit.Penerbit = rdr["Nama_Penerbit"].ToString();
                    penerbit.Kota = rdr["Kota"].ToString();
                    penerbit.Handphone = rdr["Handphone"].ToString();
                    penerbit.Email = rdr["Email"].ToString();

                    listSearchPenerbit.Add(penerbit);
                }
            }
            return listSearchPenerbit;
        }

这是我的按钮Search Click事件

protected void ButtonKelolaDataPenerbitCariPenerbit_Click(object sender, EventArgs e)
        {
            ObjectDataSourceCariDataPenerbit.SelectParameters.Clear();
            ObjectDataSourceCariDataPenerbit.SelectParameters.Add("Cari", TextBoxKelolaDataPenerbitCariPenerbit.Text);

            ObjectDataSourceCariDataPenerbit.DataBind();
        }

演示文稿更改:

 <div style="margin-top:50px">
        SEARCHING
        <br /><br />
        Enter Id : - 
        <asp:TextBox ID="txtSearchId" runat="server"></asp:TextBox>
        <asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="btnSearch_Click" />
    </div>

后端更新:

protected void btnSearch_Click(object sender, EventArgs e)
    {
        SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["StudDBConnectionString"].ToString());
        SqlCommand sqlCommand = new SqlCommand();
        sqlCommand.Connection = sqlConnection;
        sqlCommand.CommandText = "select * from tbl_stud where id="+txtSearchId.Text;
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
        dataTable = new DataTable();
        sqlDataAdapter.Fill(dataTable);
        grvStudentWithoutDatasource.DataSource = dataTable;
        grvStudentWithoutDatasource.DataBind();
    }

注意:给定的代码根据我的数据库,请相应地更改数据库列。

尝试这个

aspx文件:

<asp:ObjectDataSource runat="server" ID=" ObjectDataSourceCariDataPenerbit" TypeName="Penerbit" SelectMethod="GetSearchPenerbit">
    <SelectParameters>
        <asp:ControlParameter ControlID="TextBoxKelolaDataPenerbitCariPenerbit" Name="Cari" Type="String" />
    </SelectParameters>
</asp:ObjectDataSource>

按钮搜索点击事件

protected void ButtonKelolaDataPenerbitCariPenerbit_Click(object sender, EventArgs e)
        {

            ObjectDataSourceCariDataPenerbit.DataBind();
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM