如果使用asp.net,那么所有的选择都是LinkButton,点击时把所选择的情况记录到ViewState中(例如ViewState["通信"]=true这种形式)。而取消选择则执行ViewState.Remove("通信"); //或者ViewState["通信"]=false;要想查询条件(变量) cond 是否被选中,只要判断 var obj = ViewState[cond];
return obj!=null && (bool)obj; 就可以知道到是否选中了这个条件。然后在需要获得选择结果时,foreach遍历你的条件集合分别查询,对于选中的,组合进查询条件中。在界面上看起来,你这个UI上有三个Repeater控件,其中模板里只有一个LinkButton即可。例如在模板中写<asp:LinkButton runat="server" ID="LinkButton1" OnClick="点击查询条件" 条件值='<%# Eval("select_item") Text='<%# GetText((string)Eval("selected_item")) %>' />
然后处理点击事件protected void 点击查询条件(object sender, EventArgs e)
{
var lb = (LinkButton)sender;
if(lb.CssClass == "lb_selected")
{
lb.CssClass="lb_default";
ViewState[lb.Attributes["条件值"]]= false;
}
else
{
lb.CssClass="lb_selected";
ViewState[lb.Attributes["条件值"]]= true;
}
}protected string GetText(string cond)
{
return cond+"("+ 查询数据库得到对应的信息条数(cond) + ")";
}
return obj!=null && (bool)obj; 就可以知道到是否选中了这个条件。然后在需要获得选择结果时,foreach遍历你的条件集合分别查询,对于选中的,组合进查询条件中。在界面上看起来,你这个UI上有三个Repeater控件,其中模板里只有一个LinkButton即可。例如在模板中写<asp:LinkButton runat="server" ID="LinkButton1" OnClick="点击查询条件" 条件值='<%# Eval("select_item") Text='<%# GetText((string)Eval("selected_item")) %>' />
然后处理点击事件protected void 点击查询条件(object sender, EventArgs e)
{
var lb = (LinkButton)sender;
if(lb.CssClass == "lb_selected")
{
lb.CssClass="lb_default";
ViewState[lb.Attributes["条件值"]]= false;
}
else
{
lb.CssClass="lb_selected";
ViewState[lb.Attributes["条件值"]]= true;
}
}protected string GetText(string cond)
{
return cond+"("+ 查询数据库得到对应的信息条数(cond) + ")";
}
看下这个 早些年的