Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要一些关于HTML表单的建议吗_C#_Html_Asp.net_Sql_Web - Fatal编程技术网

C# 需要一些关于HTML表单的建议吗

C# 需要一些关于HTML表单的建议吗,c#,html,asp.net,sql,web,C#,Html,Asp.net,Sql,Web,我一直在处理一个HTML页面,该页面在第二个页面上显示SQL数据库中的一个表,该表在第一个页面上按单选按钮排序。我这里的首选语言是C#,我似乎无法正确构建第二页。目前我正在尝试将IF语句与LINQ结合使用,但它不起作用。有人能告诉我如何进行吗?顺便说一下,我完全是个业余爱好者。 HTML代码: <body> <h1>Server Request Form</h1> <form id="sortradio" action="sea

我一直在处理一个HTML页面,该页面在第二个页面上显示SQL数据库中的一个表,该表在第一个页面上按单选按钮排序。我这里的首选语言是C#,我似乎无法正确构建第二页。目前我正在尝试将IF语句与LINQ结合使用,但它不起作用。有人能告诉我如何进行吗?顺便说一下,我完全是个业余爱好者。
HTML代码:

     <body>
    <h1>Server Request Form</h1>
    <form id="sortradio" action="searchresults.aspx" method="get">
        <fieldset>
            <legend>Sort Order</legend>
            <input type="radio" id="titledesc" name="sortorder" value="Title Desc" />
            <label for="titledesc">By Title - Descending</label>
            <input type="radio" id="titleasc" name="sortorder" value="Title" />
            <label for="titleasc">By Title - Ascending</label>
            <input type="radio" id="iddesc" name="sortorder" value="Id Desc" />
            <label for="iddesc">By ID - Descending</label>
            <input type="radio" id="idasc" name="sortorder" value="Id" />
            <label for="idasc">By ID - Ascending</label>
            <input type="submit" value="Get Info" />
        </fieldset>
   </form>
</body>
<h1>You are sorting by <% Response.Write(Request.QueryString("sortorder"))%>.</h1>
<% 
    Dim SortingOrder = Request.QueryString("sortorder")
%>
<form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1" EmptyDataText="There are no data records to display.">
        <Columns>
            <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" />
            <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
            <asp:BoundField DataField="Summary" HeaderText="Summary" SortExpression="Summary" />
            <asp:BoundField DataField="Body" HeaderText="Body" SortExpression="Body" />
            <asp:BoundField DataField="GenreId" HeaderText="GenreId" SortExpression="GenreId" />
            <asp:CheckBoxField DataField="Authorized" HeaderText="Authorized" SortExpression="Authorized" />
            <asp:BoundField DataField="CreateDateTime" HeaderText="CreateDateTime" SortExpression="CreateDateTime" />
            <asp:BoundField DataField="UpdateDateTime" HeaderText="UpdateDateTime" SortExpression="UpdateDateTime" />
        </Columns>
    </asp:GridView>
    <asp:sqldatasource id="SqlDataSource1" runat="server" connectionstring="<%$ ConnectionStrings:Database1.MDFConnectionString1 %>" providername="<%$ ConnectionStrings:Database1.MDFConnectionString1.ProviderName %>" selectcommand="SELECT [Id], [Title], [Summary], [Body], [GenreId], [Authorized], [CreateDateTime], [UpdateDateTime] FROM [Review] ORDER BY @sortorder">
        <Selectparameters>
      <asp:querystringparameter name="sortorder" querystringfield="sortorder" />
        </Selectparameters>
    </asp:SqlDataSource>
    </form>`

服务器请求表单
排序顺序
按标题降序排列
按标题-升序
按ID递减
按ID升序

Aspx代码:

     <body>
    <h1>Server Request Form</h1>
    <form id="sortradio" action="searchresults.aspx" method="get">
        <fieldset>
            <legend>Sort Order</legend>
            <input type="radio" id="titledesc" name="sortorder" value="Title Desc" />
            <label for="titledesc">By Title - Descending</label>
            <input type="radio" id="titleasc" name="sortorder" value="Title" />
            <label for="titleasc">By Title - Ascending</label>
            <input type="radio" id="iddesc" name="sortorder" value="Id Desc" />
            <label for="iddesc">By ID - Descending</label>
            <input type="radio" id="idasc" name="sortorder" value="Id" />
            <label for="idasc">By ID - Ascending</label>
            <input type="submit" value="Get Info" />
        </fieldset>
   </form>
</body>
<h1>You are sorting by <% Response.Write(Request.QueryString("sortorder"))%>.</h1>
<% 
    Dim SortingOrder = Request.QueryString("sortorder")
%>
<form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1" EmptyDataText="There are no data records to display.">
        <Columns>
            <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" />
            <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
            <asp:BoundField DataField="Summary" HeaderText="Summary" SortExpression="Summary" />
            <asp:BoundField DataField="Body" HeaderText="Body" SortExpression="Body" />
            <asp:BoundField DataField="GenreId" HeaderText="GenreId" SortExpression="GenreId" />
            <asp:CheckBoxField DataField="Authorized" HeaderText="Authorized" SortExpression="Authorized" />
            <asp:BoundField DataField="CreateDateTime" HeaderText="CreateDateTime" SortExpression="CreateDateTime" />
            <asp:BoundField DataField="UpdateDateTime" HeaderText="UpdateDateTime" SortExpression="UpdateDateTime" />
        </Columns>
    </asp:GridView>
    <asp:sqldatasource id="SqlDataSource1" runat="server" connectionstring="<%$ ConnectionStrings:Database1.MDFConnectionString1 %>" providername="<%$ ConnectionStrings:Database1.MDFConnectionString1.ProviderName %>" selectcommand="SELECT [Id], [Title], [Summary], [Body], [GenreId], [Authorized], [CreateDateTime], [UpdateDateTime] FROM [Review] ORDER BY @sortorder">
        <Selectparameters>
      <asp:querystringparameter name="sortorder" querystringfield="sortorder" />
        </Selectparameters>
    </asp:SqlDataSource>
    </form>`
您正在按排序。
`

我很确定您不应该在ORDERBY子句中使用参数

如果是我,我将实现一个并使用服务器端硬编码替代方案动态创建我的ORDERBY子句。如果您这样做,请确保始终使用用户提交数据的参数来保护自己免受攻击

如果您不想处理ObjtDaskUsCE类,那么考虑为每个排序选项实现一个不同的Sql DATABOCE。每一个都将实现一个不同的ORDERBY子句

根据查询参数的值设置DataSourceID


我不确定这是否有效。您可能需要显式设置GridView的数据源。如果是这样,请记住也显式调用Databind()。

如果您提供了当前正在使用的代码,这样我们就可以了解为什么它可能不起作用了。您使用的是什么技术?如果您是Csharper、Asp.net Webform或MVC?再次。。请向我们展示与问题相关的代码。你给了我们加价。。你提到的
if
语句在哪里?我最终去掉了
if
,因为几乎每一行都包含一个错误。有没有一种方法可以直接使用asp标记来实现?