我正在使用网格视图来显示数据库中的数据。有一个状态列,其中包含3个值。我希望用户能够使用网格中的下拉列表来更改值,当用户点击ChangeStatus但每行上都存在时,该下拉列表会显示。任何想法如何实现?
答案 0 :(得分:1)
使用填充了三个选项的隐藏,以及另一个值,即正在修改的行的ID。然后将onclick事件处理程序添加到状态列文本。单击它时,使用下拉菜单替换文本,并将值设置为行的ID。
下拉菜单应该有一个事件onselectedindexchange,它将触发ajax回调给webservice(或方法),该webservice接收要更改的行的值和ID。最后,一旦进行了ajax调用,隐藏并使该单元格的文本成为所选项目的值(或文本)。
编辑 - 一些帮助你的psudeo代码
<table>
<tr>
<td><span id="recordId" class="select">Status</span></td>
</tr>
</table>
<div style="display: none" id="hiddenDiv">
<select id="statusSel" >
<option value="0"> - Select Status - </option>
<option value="Status1">Status 1</option>
<option value="Status1">Status 1</option>
<option value="Status1">Status 1</option>
</select>
</div>
var statusSel = $('#statusSel');
var recordId = 0;
statusSel.change(function() {
var newStatus = $(this).value(); //I think this is right for select
//Ajax Call to web server (see $.ajax() in jQuery notes)
$.ajax( /* pass newStatus and recordId */ );
$('#hiddenDiv').html(statusSel); //Move statusSel back to hidden div
$(this).parent().html(newStatus); //set the span value to the new status
});
$('.select').click(function () {
$(this).html(statusSel);
});
可能有很多方法可以做到更清洁 - 但这应该给你一个粗略的想法。
答案 1 :(得分:0)
你可以在你的项目中使用jQuery吗?如果是这样,那么您可以使用jQuery show()
API调用,在用户点击“更改状态”链接/按钮时显示下拉列表。