私の質問は、テーブルの行に主キーを配置し、Jqueryを使用してIDを見つける場合のベストプラクティスは何ですか。
したがって、MVCを使用して、クリックするとモデルポップアップを開く編集および削除ボタンを使用してデータのテーブルを作成します。
あなたがすべき:
a)各ボタンのデータ属性に主キーを配置します
b)各行に非表示フィールドがある
c)各ボタンでOnclickを使用し、IDを機能に渡します
d)trタグにIDがある
onclick
jQueryでハンドラーを使用しないでください(正当な理由もなくハンドラーをコードから分離し、単一のハンドラーのみをサポートします)だから私はオプションで行く傾向がありますe)
:
data-id=""
各行に1回ずつ使用する傾向があります。次に、行の任意の要素から、.closest('tr').data("id")
etcを使用してPKを取得します。(実際、私はこのパターンを使用することが多いので、これを1つで行うためのカスタムjQuery拡張機能があります。例:) .closestAttr("data-id")
。
.closestAttr():
興味のある人のために提供されたTypeScriptコード:
// Find the nearest matching attribute in the elements themselves, as well as in all ancestors
jQuery.fn.closestAttr = function (attribute: string): string
{
return this.closest('[' + attribute + ']').attr(attribute);
};
またはプレーンJSで:
// Find the nearest matching attribute in the elements themselves, as well as in all ancestors
jQuery.fn.closestAttr = function (attribute)
{
return this.closest('[' + attribute + ']').attr(attribute);
};
追記:データが親の下にグループ化されている場合data-id=""
、親FK /グループなどを表す別のデータがテーブルにあります。
更新-コメントで提供されているコード例の場合:
私はそれをこのようにします:
@foreach (var i in n)
{
<tr data-id="@i">
<td>@i</td>
<td><input type="button" class="edit" value="Edit" /></td>
<td><input type="button" class="delete" value="Delete" /></td>
</tr>
}
.closest('tr').data("id")
押されたボタンからIDを取得します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加