我在js文件中定义了一个表,最后一列是每行的编辑按钮,让用户编辑这一行的信息。还有另一行,第三行,MlsCode。只有当MlsCode的值为“A”或“B”时,我们才应该在此行中显示编辑按钮。下面是表格构建器的一部分:
var agentSearchResultBuilder =
[
{ colName: "First Name", dataName: "FirstName" },
{ colName: "Last Name", dataName: "LastName" },
{ colName: "MLS", dataName: "MlsCode" },
{
colName: "MLS Office Status",
dataName: "Office.MlsIsActive",
template: '{{if Office.MlsIsActive}}Active{{else}}Inactive{{/if}}',
styleClass: '{{if Office.MlsIsActive}}active{{else}}inactive{{/if}}'
},
{
colName: "Edit",
template: "<button title='Edit Agent Information' class='tinyButton editAgent' id='${MlsCode}'>Edit</button>"
}
];
我编写了以下代码来控制编辑按钮的可见性,但只有第一个匹配的行才能显示该按钮。后面的匹配行没有显示按钮。我不知道出了什么问题。
$("button.editAgent", table).button().hide(); //to hide all buttons initially
$('#agentSearchTable >tbody >tr').each(function () {
var value = $(this).find('td:eq(2)').text();
if (value === "A") {
$("#A").show();
alert(value);
/*I use this to test if it reaches every
matching row or not. Turns out yes. Each matching row
gives alert. But edit button didn't show(only first
matching one shows.)
*/
}
if (value === "B") {
$("#B").show();
alert(value);
}
});
另外,我注意到在agentSearchResultBuilder中,有一些代码,如{if} .. {/ if},所以我想知道有没有办法可以在编辑按钮的模板中执行此操作。就像id等于'A'或'B'一样,显示按钮。我对C#,javascript和jQuery完全不熟悉。这是我的第一个项目。希望你能帮助我,非常感谢!
答案 0 :(得分:1)
此:
$("#A").show();
不会起作用,因为它取决于在多行按钮上具有相同的id,这不是合法的HTML。浏览器可能忽略了已经看到的ID的id
属性。您可能希望使用类而不是ID(将button-${MLSCode}
添加到class
属性的末尾并删除id
属性),并使用以下内容:
$(this).find('.button-a').show();
显示它。