具有优先顺序的 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 Core启动地址配置方法及优先级顺序

ASP.NET MVC 5:跨控制器定义路由顺序(RouteAttribute)

ASP.NET CoreConfiguration 配置优先级详解

ASP.NET Page执行顺序(ASP.NET生命周期)