asp.net中html表的搜索按钮代码

asp.net中html表的搜索按钮代码,html,asp.net,database,twitter-bootstrap,Html,Asp.net,Database,Twitter Bootstrap,我在asp.net中有一个表,它使用repeater控件绑定到数据库。我用table代替gridview,但现在我不知道如何实现搜索代码。另外,我如何使用gridview而不是table,以便于进行搜索、排序 HTML: 添加一些文本框和按钮控件。输入要搜索的值的文本框,以及进行此搜索的按钮。您的代码如下所示: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) BindRepea

我在asp.net中有一个表,它使用repeater控件绑定到数据库。我用table代替gridview,但现在我不知道如何实现搜索代码。另外,我如何使用gridview而不是table,以便于进行搜索、排序

HTML:


添加一些文本框和按钮控件。输入要搜索的值的文本框,以及进行此搜索的按钮。您的代码如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        BindRepeater();
}

protected void BindRepeater(){
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ComplaintWebsiteConnectionString"].ConnectionString);
    String query = "select C.ID as complaintid, S.NAME as STATUS, 'just a string' as ID,'just a string' as href,T.Comp_Type as type,ST.Comp_SubType as subtype from Citizen_complaints C join Complaint_Type T on T.Type_ID=C.Type join Complaint_SubType ST on ST.SubType_ID = C.subtype join COMPLAINT_STATUS S on S.ID = C.STATUS_ID";
    if (Session["search"] != null)
        query += " where your_field like '%" + Session["search"].ToString() + "'";
    SqlCommand cmd = new SqlCommand(query, con);
    try
    {
        con.Open();
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            dr["href"] = "DeptComplaintStatus.aspx?id=" + dr["complaintid"].ToString();
            dr["id"] = dr["complaintid"].ToString();
        }
        RepeaterComp.DataSource = ds;
        RepeaterComp.DataBind();
    }
    catch (Exception ex)
    {
        //...
    }
    finally
    {
        con.Close();
    }
}

protected void YourButton_Click(object sender, EventArgs e){
    Session["search"] = YourTextbox.Text;
    BindRepeater();
}

这是解决问题的简单方法。

添加一些文本框和按钮控件。输入要搜索的值的文本框,以及进行此搜索的按钮。您的代码如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        BindRepeater();
}

protected void BindRepeater(){
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ComplaintWebsiteConnectionString"].ConnectionString);
    String query = "select C.ID as complaintid, S.NAME as STATUS, 'just a string' as ID,'just a string' as href,T.Comp_Type as type,ST.Comp_SubType as subtype from Citizen_complaints C join Complaint_Type T on T.Type_ID=C.Type join Complaint_SubType ST on ST.SubType_ID = C.subtype join COMPLAINT_STATUS S on S.ID = C.STATUS_ID";
    if (Session["search"] != null)
        query += " where your_field like '%" + Session["search"].ToString() + "'";
    SqlCommand cmd = new SqlCommand(query, con);
    try
    {
        con.Open();
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            dr["href"] = "DeptComplaintStatus.aspx?id=" + dr["complaintid"].ToString();
            dr["id"] = dr["complaintid"].ToString();
        }
        RepeaterComp.DataSource = ds;
        RepeaterComp.DataBind();
    }
    catch (Exception ex)
    {
        //...
    }
    finally
    {
        con.Close();
    }
}

protected void YourButton_Click(object sender, EventArgs e){
    Session["search"] = YourTextbox.Text;
    BindRepeater();
}

这是您问题的简单解决方案。

当然,此代码不是“干净的”。我不想这样使用。我想将sql查询移动到存储过程中(首先,这里可以进行sql注入;其次,存储过程提供了更高的安全性,也使您的代码更具可读性)。我的表现在不可见,单击“搜索”按钮时,什么都不显示。@Ashwini我的代码完全可以工作。试着调试你的代码。我想你必须抓住一些例外。您必须检查sql查询,因为“我不知道您的表”结构我在代码中看到您对表使用了伪名称。因此,如果您将_字段更改为myText,例如,您必须将其更改为tablename.myText或T.myText(如果您将表的伪名称设置为T),那么这段代码自然不是“干净的”。我不想这样使用。我想将sql查询移动到存储过程中(首先,这里可以进行sql注入;其次,存储过程提供了更高的安全性,也使您的代码更具可读性)。我的表现在不可见,单击“搜索”按钮时,什么都不显示。@Ashwini我的代码完全可以工作。试着调试你的代码。我想你必须抓住一些例外。您必须检查sql查询,因为“我不知道您的表”结构我在代码中看到您对表使用了伪名称。因此,例如,如果将_字段更改为myText,则必须将其更改为tablename.myText或T.myText(如果将表的伪名称改为T)
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        BindRepeater();
}

protected void BindRepeater(){
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ComplaintWebsiteConnectionString"].ConnectionString);
    String query = "select C.ID as complaintid, S.NAME as STATUS, 'just a string' as ID,'just a string' as href,T.Comp_Type as type,ST.Comp_SubType as subtype from Citizen_complaints C join Complaint_Type T on T.Type_ID=C.Type join Complaint_SubType ST on ST.SubType_ID = C.subtype join COMPLAINT_STATUS S on S.ID = C.STATUS_ID";
    if (Session["search"] != null)
        query += " where your_field like '%" + Session["search"].ToString() + "'";
    SqlCommand cmd = new SqlCommand(query, con);
    try
    {
        con.Open();
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            dr["href"] = "DeptComplaintStatus.aspx?id=" + dr["complaintid"].ToString();
            dr["id"] = dr["complaintid"].ToString();
        }
        RepeaterComp.DataSource = ds;
        RepeaterComp.DataBind();
    }
    catch (Exception ex)
    {
        //...
    }
    finally
    {
        con.Close();
    }
}

protected void YourButton_Click(object sender, EventArgs e){
    Session["search"] = YourTextbox.Text;
    BindRepeater();
}