我有一个gridview
,我希望它的行能够展开并显示传递的BatchID。
目前我正在使用href="javascript:switchViews('div<%# Eval("BatchID")%>', 'one');"
传递信息,但我无法在Javascript端获取BatchID。
在javascript端我应该得到这些信息来为我的新行分配一个ID,所以当我切换它们时,它们并不是全部被删除,而只是相应的。目前,如果切换,所有创建的tr
都会从每个row
删除,并且文本“Hide Details
”仍然保留在未点击的其他行上但是它们的嵌套tr得到除去。
我试图从params获取BatchID,但我不知道如何。针对上述两个问题的任何想法?
<script type="text/javascript">
$(document).ready(function (params) {
$('.showDetails').click(function () {
// Show Details DIV
$(this).closest('tr').find('.details').toggle('fast');
// Return false to disable default postback on click of a <a> element
return false;
}).toggle(
function () {
// Trigger text/html to toggle to when hiding.
$(this).html('Hide Details').stop();
$(this).closest("tr").after("<tr class='" + event.id + "'><td></td><td colspan = '999'><div>" + '111' + "</div></td></tr>");
// $(this).closest('tr').find('.details').append('<div class=' + 'shit' + '>3399</div>');
},
function () {
// Trigger text/html to toggle to when showing.
$(this).html('Show Details').stop();
//$(this).find('.zoom').remove();
$('tr.' + event.id).remove();
}
);
});
</script>
的GridView:
<asp:TemplateField>
<ItemTemplate>
<a class="showDetails" href="javascript:switchViews('div<%# Eval("BatchID")%>', 'one');">Show Details</a>
</ItemTemplate>
</asp:TemplateField>
答案 0 :(得分:1)
我强烈建议您阅读Decoupling Your HTML, CSS, and JavaScript。
我无法在Javascript端获得BatchID。
让我们以非耦合方式将其添加到HTML中:
(https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes)
<a class="showDetails" data-batchid="<%# Eval("BatchID")%>" href="javascript:void(0)">Show Details</a>
然后更新您的点击以获取值并拨打电话:
(https://api.jquery.com/jquery.data/)
$('.showDetails').click(function () {
// Show Details DIV
$(this).closest('tr').find('.details').toggle('fast');
var batchId = $(this).data('batchid');
switchViews(batchId, 'one');
})....
我添加了有效的Href并删除了return false
:
Href attribute for JavaScript links: “#” or “javascript:void(0)”?