1

現在の状況の解決策にアプローチするのに問題があります。

C# はデータベースにクエリを実行するため、動的な値を C# 変数に割り当てる必要があります。

この値は、選択 (クリックなど) された SQL クエリ エントリのプライマリ キー ID と一致する必要があります。

検索に基づいてエントリがいくつ (またはどのエントリ) あるのか、私にはわかりません。

これまでは、検索条件をフォームに入力し、データベースに動的にクエリを実行し、結果を 1 行ずつ順番に表示していました。

ここで、編集するエントリを選択し、データベース内のそのエントリの値を [表示と編集] ページに表示できるボタン (またはユーザーが選択した何らかのインターフェイス) が必要です。

私はこれをすべて行うことができますが、ユーザーが入力できるようになるまでに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") に設定して、非表示の入力テキスト フィールド (つまり、var someVariable = Request.Form["inputName"];) から EntryID を抽出するだけです。 )。

これが、WebGrid ヘルパーを使用せずに同様の機能を実行したい人に役立つことを願っています (ただし、おそらくそうしたいと思うでしょうが、それが目的であるということです)。ただし、私のような一部の人は、この方法でより適切に制御する方法を知っているかもしれません (なぜなら、ジャックについてヘルパーについて知らないかもしれませんし、Web インターフェイスを表示、スタイル、および制御するために必要なわずかな構成を微調整する方法も知らないからです)私たちはしたい)。

とにかく、これが誰かに役立つことを願っています。

于 2012-09-28T16:59:36.723 に答える
0

かなり遅いですが、他の人に役立つかもしれません:

foreach の例

                @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 に答える