具有优先顺序的 Asp,net 形式
Posted
技术标签:
【中文标题】具有优先顺序的 Asp,net 形式【英文标题】:Asp,net form with order of preference 【发布时间】:2021-11-03 20:59:12 【问题描述】:我正在尝试制作一个表格,用户可以在其中填写具有偏好顺序的学院选择表格。 记录应存储在此表中的数据库中,如下所示:
tblAcademy_selection
stud_id Acad_id order_preference
--------------------------------
1 1 1
1 2 2
1 3 3
1 5 4
1 4 5
我在网格视图的绑定字段中通过对象数据源列出了学院,并且我有一个字段选项用于选择偏好:
<asp:GridView ID="gdvAcadSelec" runat="server" AutoGenerateColumns="False"
DataKeyNames="acad_Id" DataSourceID="srcAcademy"
OnRowDataBound="gdvAcadSelec_RowDataBound"
CssClass="table table-striped table-bordered"
EnableViewState="False">
<Columns>
<asp:BoundField DataField="acad_name"
HeaderText="Academy" SortExpression="acad_name" />
<asp:TemplateField HeaderText="Choice">
<ItemTemplate>
<asp:DropDownList ID="ddlPref" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="srcAcademy"
TypeName="dataAccessLayer"
SelectMethod="getAcademy"
runat="server" />
我正在考虑通过下拉列表放置选择偏好的数量,但这样系统不会很好。
我想要的是一个复选框,但不是打勾,而是根据所选选项的数量在框中放置一个数字。框中的偏好数应该是动态的例子:学生的第一个选择会自动为1,然后第二个选择应该输入一个2,依此类推。例如,如果他取消选择 2,则他的下一个选择优先顺序应保持为 2,因为尚未放置 2。 刻度线应该是升序
我到处搜索如何做到这一点,但我没有找到。 还有其他方法可以制作这个学院的优先顺序表吗?
【问题讨论】:
您打算如何方便用户选择学院? 请问这是什么意思? 我打算把这张纸上的选择表格变成电脑表格。 【参考方案1】:我认为应该更新您的表以包含主键。它只会让一些事情变得更容易。 (编辑:我想您可以将所有 3 个字段都设为 PK。由您决定。)
我不知道 order_preference 字段是什么数据类型。我现在假设为 number 或 int,但 text 的工作方式几乎相同。
tblAcademy_selection
AcademySelectionID stud_id Acad_id order_preference
---------------------------------------------------
1 1 1 1
2 1 2 2
3 1 3 3
4 1 5 4
5 1 4 5
您的 gridview 应该使用上面的表格。
将 academy_id 字段设为带有下拉菜单的模板字段,将 order_preference 字段设为带有文本框的模板字段。 PK 和 stud_id 甚至不需要可见,这取决于您如何处理学生 ID(这可能是自动的,很难说)。
学院下拉模板字段将拥有自己的数据源,类似于您的操作方式。
此网格视图应该可以毫无问题地更新。您可以将偏好顺序输入为简单文本。 (我可以想象另一种方式,使用下拉菜单,但它可能会变得丑陋。)您只需要验证输入的内容。
主要是使用 tblAcademy_selection 作为gridview。
Hth.
【讨论】:
谢谢你的回答,我也在考虑在偏好字段的顺序下拉,你认为这会产生问题吗? 可能,例如,您输入了多少个数字?如果您可以确定,或者不关心以后添加更多,那就去吧。 优先顺序的范围应该是1-12 我得到的问题是在gridview中检索下拉字段的id,我该怎么做? 抱歉,不打算一步一步来。以上是关于具有优先顺序的 Asp,net 形式的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core启动地址配置方法及优先级顺序 | .NET 6 版本
ASP.NET Core启动地址配置方法及优先级顺序 | .NET 6 版本 #yyds干货盘点#
ASP.NET MVC 5:跨控制器定义路由顺序(RouteAttribute)