我有一个GridView,我正在尝试根据Panel中几个控件(主要是TextBoxes)的输入来设置过滤器。我已经在其他地方完成了这个,没有我遇到困难的复选框,而且效果很好。但现在在这种情况下,我有一个复选框,为过滤器提供信息。
复选框如下所示:
<asp:CheckBox ID="TicketClosed_ChBox" runat="server" Width="25px" AutoPostBack="true"></asp:CheckBox>
在datasrouce的select语句中,我将其构建为:
AND (RTRIM(LTRIM(ISNULL(@TicketClosed, ''))) = '' OR TicketClosed LIKE '%' + @TicketClosed + '%') AND
然后在for DataSource中,我在文本框控件中链接:
<asp:ControlParameter Name="TicketClosed" ControlID="TicketClosed_ChBox" Type="Boolean" ConvertEmptyStringToNull="true" />
问题在于它回来说“数据类型varchar和bit在add运算符中是不兼容的。”
我尝试将ControlParameter转换为Byte和其他几种类型,但它仍然失败。我真的不确定为什么我不能让它飞起来。
思想?
答案 0 :(得分:0)
如果我没弄错的话,ConvertEmptyStringToNull
仅适用于String的数据类型。复选框始终具有值,永远不会为NULL
。尝试删除参数的该部分,看看是否有效。