asp.net中html表的搜索按钮代码
我在asp.net中有一个表,它使用repeater控件绑定到数据库。我用table代替gridview,但现在我不知道如何实现搜索代码。另外,我如何使用gridview而不是table,以便于进行搜索、排序 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
添加一些文本框和按钮控件。输入要搜索的值的文本框,以及进行此搜索的按钮。您的代码如下所示:
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();
}