我有一个从SQL select语句填充的下拉列表。 select语句过滤“bit”设置为false的项目,但项目虽然仍在数据库中,但仍被隐藏。
我的问题是;当某个商品缺货或隐藏(比特=假)时,用户可能仍然拥有现在隐藏的商品,因此会引发错误。如何以及在何处捕捉到这一点,显示原始项目或将值设置为默认值?
protected void GradeDropDownList_DataBinding (object sender, EventArgs e)
{
var ddl = (DropDownList)(sender);
var a = ((Label)MyDetailsView.FindControl("GradeLabelEdit")).Text;
a = a.Trim();
if (a != "") { ddl.SelectedValue = a; }
}
选择陈述;
<asp:SqlDataSource ID="getGrade" runat="server" ConnectionString="<%$ ConnectionStrings:CasesTimeConnection %>"
SelectCommand="SELECT [gradeID], [gradeText] FROM [user_grades] WHERE ([visibleState] = @visibleState)">
<SelectParameters>
<asp:Parameter DefaultValue="True" Name="visibleState" Type="Boolean" />
</SelectParameters>
</asp:SqlDataSource>
在页面中;
<EditItemTemplate>
<asp:DropDownList ID="GradeDropDownList" runat="server" DataSourceID="getGrade" DataTextField="gradeText" DataValueField="gradeID" OnDataBinding="GradeDropDownList_DataBinding" OnSelectedIndexChanged="GradeDropDownList_SelectedIndexChanged">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="gradeLabel" runat="server" Text='<%# Bind("gradeText") %>'></asp:Label>
</ItemTemplate>
答案 0 :(得分:0)
检索记录时检索LastModifiedDate,并在尝试更新记录时检查现有的lastModifiedDate值和检索到的值。如果它们不同,则抛出警告信息/显示新数量。
谢谢
沙市