Asp.net sql 或 object-datacontrol select 参数同时具有 DefaultValue 和 ControlParameter

Asp.net sql or object-datacontrol select parameter having both DefaultValue and ControlParameter

我希望获得有关在 aspx 代码中同时为 sql 或对象 select 参数提供 DefaultValue 和 ControlParameter 引用时实际发生的情况的专家建议。 在下面的示例中,ControlParameter 是一个在表单加载中设置的隐藏控件(比如值为 50)。问题 1:执行 select 操作时,哪个值(控制值 50 或默认值 99)优先?
Q2:为 ControlParameter 提供 DefaultValue 是不是编码不好?

aspx 代码示例:

<SelectParameters>
   <asp:ControlParameter ControlID="hidUID_DIVISION" Name="UID_DIVISION" 
        PropertyName="Value" Type="Int32" DefaultValue="99" />

谢谢。

根据 MSDN:-

The DefaultValue property is used in scenarios where the parameter is bound to a value, but the value is null or cannot be resolved when the Parameter object is evaluated.

所以它回答了你的第一个问题,因为你的控制参数已经解析并且具有值 50 它将被使用并且默认值将被忽略。

Is it poor coding to supply a DefaultValue for a ControlParameter?

一点也不,实际上您应该提供默认值以避免用户可能面临的任何混淆。举个例子,假设您已经使用 gridview 和 Sqldatasource 控件创建了一个简单的搜索功能。您有一个下拉列表将用于过滤数据。现在,当下拉列表中没有选择任何内容并且首次加载页面时,将不会显示任何记录,因为基于下拉列表的过滤条件将失败。为避免这种情况,您应该提供一个默认值,以便用户在下拉列表中没有选择任何内容时可以看到所有记录。 明白我的意思。