jQuery の .serialize() を使用して、javascript で生成されたチェックボックスから値を取得しています。シリアル化の後、データは AJAX 経由で aspx ページに送信されます。aspx ページは、Request.Form.GetValues[] を使用してチェックボックスの値をキャプチャする必要があります。私の問題は、チェックボックスがシリアル化されているが、 Request.Form.GetValues[] が値を取得しないことです。
以前は、正常に機能する Web フォームで生成されたチェックボックスを使用していました。しかし、JavaScript で生成されると、Request.Form.GetValues[] はチェックボックスの値をフェッチできなくなります。
コード スニペットは次のとおりです。
(シリアル化および ajax 関数)
$('a#upload-button-gp').live('click', function() {
var data = $('form#upload').serialize();
$.loader(true);
$.ajax({
url: '/ptcProject/ajax.aspx',
type: 'post',
data: { data: data, upload: 1 },
success: function(response) {
if (parseInt(response) == 1) {
$.loader(false);
$('#confirmationUpload').modal('hide');
}
else if (parseInt(response) == 0) {
alert("You have already uploaded this batch.");
$('#confirmationUpload').modal('hide');
$.loader(false);
}
else {
alert('Please select at least one row to upload.');
$('#confirmationUpload').modal('hide');
$.loader(false);
}
}
});
(js で生成されたチェックボックス)
$('tbody#table-data').append("<tr><td><input id='check' name='include[]' type='checkbox' class='input-field checkbox' value='" + buttonId + "' checked='checked' /></td>" + $(this).parent().parent().html() + "</tr>");
(aspx ページ)
string[] claimsID = Request.Form.GetValues("include[]");
あなたの助けは大歓迎です!
アップデート:
問題を発見!
追加されたコード:
data += "&upload=1";
...
$.ajax({
...
data: data,
...
それだけでした。答えてくれてありがとう!