1

我无法解决我目前的情况:

我需要为 C# 变量分配一个动态值,因为 C# 是查询我的数据库的内容。

该值必须与他们选择(点击等)的 sql 查询条目的主键 ID 匹配。

我永远不知道根据他们的搜索会有多少条目(或哪些条目)。

至此,他们把自己的搜索条件放到了一个表格里,动态查询数据库,结果逐行显示。

现在,我需要一个按钮(或某种用户选择的界面),它可以告诉我他们选择编辑哪个条目,然后将数据库中该条目的值带到“查看和编辑”页面。

我可以做所有这些,除了,当 C# 在用户可以提供任何输入时已经完成呈现页面时,我如何知道他们单击(或以其他方式选择)哪个条目?JavaScript 不能查询数据库,这怎么可能呢?请记住,我知道 jQuery,但不知道任何 AJAX。

我正在使用 WebMatrix C# razor、html、css、JavaScript、SQL Server Compact 和 jQuery(我确定是标准 WebMatrix 设置)。

任何帮助深表感谢。

4

2 回答 2

1

好的,正如 GmG 所评论的那样,webGrid 旨在帮助解决这个问题,但是,如果您不想使用该答案并构建自己的答案,那么我发现这对我来说非常有效(对于我的具体情况甚至更好) :

在 @foreach(var row in db.Query("queryString")) 循环中,我(在汇总信息中)添加了一个表单,以便找到的每个条目都有自己的表单。在表单中,我只放置了一个提交按钮和一个隐藏的输入文本元素,在“name”属性中设置了任何给定的指定名称(即,name="inputName")。这个隐藏元素的值是@row.EntryID(即value="@row.EntryID"),它会用在数据库中找到的条目的唯一主键来绘制这个字段的值。在该页面中将表单操作设置为另一个文件(即 action="/somefile.cshtml"),我只是从隐藏的输入文本字段中提取了 EntryID(即 var someVariable = Request.Form["inputName"]; )。

我希望这可以帮助任何想要在不使用 WebGrid 帮助器的情况下执行类似功能的人(尽管您可能想要这样做,我的意思是这就是它的用途)。然而,对于像我这样的一些人,我们可能知道如何以这种方式更好地控制它(因为我们可能不知道杰克关于帮助程序以及如何调整其中所需的微小配置来以这种方式显示、样式和控制 Web 界面我们想)。

无论如何,再次希望这对某人有所帮助。

于 2012-09-28T16:59:36.723 回答
0

已经很晚了,但它可能会帮助其他人:

示例

                @foreach(var row in sCustomersHO){
                <tr>
                    <td><a href="~/Admin/ManageCustomersCH?id=@row.CustId">@row.Account</a></td>
                    <td>@row.CustomerName</td>
                    <td>@row.RepName</td>
                    <td>@row.CustomerTypeDescription</td>
                    <td>@row.StopStatus</td>
                    <td><a href="~/Admin/DeleteCustomerHO?id=@row.CustId">Delete</a></td>
                </tr>
            }

网格示例:

            @gAllReports.GetHtml(
            tableStyle: "grid",
            headerStyle: "head",
            alternatingRowStyle: "alt",
            columns: gAllReports.Columns(
                gAllReports.Column("Name"),
                gAllReports.Column("Description", format: @<textarea disabled>@item.Description</textarea>),
                gAllReports.Column("Action", format: @<form method="post">@AntiForgery.GetHtml()<input type="hidden" id="UserId" name="UserId" value="@UserId" /><input type="hidden" id="ReportId" name="ReportId" value="@item.ReportId" /><button type="submit" name="action" value="add">Add</button></form>)
            )
        )
于 2014-07-09T15:59:57.827 回答