如何动态显示下拉列表

时间:2011-06-26 07:59:17

标签: c# asp.net

我正在使用网格视图来显示数据库中的数据。有一个状态列,其中包含3个值。我希望用户能够使用网格中的下拉列表来更改值,当用户点击ChangeStatus但每行上都存在时,该下拉列表会显示。任何想法如何实现?

2 个答案:

答案 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调用,在用户点击“更改状态”链接/按钮时显示下拉列表。