【问题标题】:Asp.net sql or object-datacontrol select parameter having both DefaultValue and ControlParameterAsp.net sql 或 object-datacontrol 选择参数同时具有 DefaultValue 和 ControlParameter
【发布时间】:2016-01-10 05:51:14
【问题描述】:
我希望得到专家的建议,了解在 aspx 代码中同时为 sql 或对象选择参数提供 DefaultValue 和 ControlParameter 引用时实际发生的情况。
在下面的示例中,ControlParameter 是在表单加载中设置的隐藏控件(例如值 50)。 QUESTION1:执行选择操作时,哪个值(控制值 50 或默认值 99)具有优先权?
Q2:为 ControlParameter 提供 DefaultValue 是不是很糟糕?
aspx 代码示例:
<SelectParameters>
<asp:ControlParameter ControlID="hidUID_DIVISION" Name="UID_DIVISION"
PropertyName="Value" Type="Int32" DefaultValue="99" />
谢谢。
【问题讨论】:
标签:
asp.net
webforms
sqldatasource
【解决方案1】:
根据 MSDN:-
DefaultValue 属性用于参数为
绑定到一个值,但该值为 null 或无法解析时
参数对象被评估。
所以它回答了您的第一个问题,因为您的控制参数已经解析并且具有值50,它将被使用并且默认值将被忽略。
为 ControlParameter 提供 DefaultValue 是不是很糟糕?
一点也不,实际上您应该提供默认值以避免用户可能面临的任何混淆。举例来说,您已经使用 gridview 和 Sqldatasource 控件创建了一个简单的搜索功能。您有一个下拉菜单,将用于过滤数据。现在,当在下拉列表中未选择任何内容以及第一次加载页面时,将不会显示任何记录,因为基于下拉列表的过滤条件将失败。为避免这种情况,您应该提供一个默认值,以便在下拉菜单中未选择任何内容时用户可以看到所有记录。 Check this answer 明白我的意思。