仅在单击时填充下拉列表

时间:2017-09-18 06:27:30

标签: c# asp.net

我在aspx页面中有6个下拉列表。我只需在点击时填充下拉列表。 最初我在页面加载中填充了所有6 ddl,但加载页面时出现了很大的延迟,因此我只有在单击时才能填充ddl。我找不到正确的答案,尝试使用diff sol和query。

我在ddl中找不到任何'Onclick','Onmousedown','Onkeypress'。 我甚至试过用户在stackoverflow中共享一个选项。

请找到以下代码并帮助解决问题。

 <td class="style10" >
 <asp:DropDownList runat="server" ID="ddlGM"   Width="150px" AutoPostBack="True" onclick="javascript:clickHiddenButton();" onselectedindexchanged="ddlGM_SelectedIndexChanged" style="height: 22px" >
  <asp:ListItem Value=0 Text="All"></asp:ListItem></asp:DropDownList><div style="display: none;">
  <asp:Button ID="btnHidden" runat="server" Text="Button" />
                    </div></td>
<script type="text/javascript">
function clickHiddenButton() {
    var btn = document.getElementById('btnHidden');
    var ddl = document.getElementById('ddlGM');
    if (ddl.length == 1) {
        btn.click();
    }
}
</script>
 protected void btnHidden_Click(object sender, EventArgs e)
{
    DataView dvfilters = (DataView)(Cache["FiltersData"]);
    dtt = dvfilters.ToTable();
    ddlGM.DataSource = dtt;
    ddlGM.DataValueField = "GlobalMarket";

    ddlGM.DataBind();
    RemoveDuplicateItems(ddlGM);
    SortDDL(ref ddlGM);
    //ddlGM.Items.Insert(0, "All");
}

1 个答案:

答案 0 :(得分:0)

您可以对任何元素使用.focus函数。无论如何,当特定功能被点击或获得焦点时,都会调用焦点功能。我正在为您提供示例代码。您可以根据需要更改此代码。

<script>
    var bDataLoded = false;
    $(document).ready(function () {
        var ddVal = '';
        $('#ddlGM').focus(function () {
            if (!bDataLoded) {
                alert("hi");
                $('#ddlGM').append('<option value=' + 1 + '> + Test 1 + </option>');
                $('#ddlGM').append('<option value=' + 2 + '> + Test 2 + </option>');
                $('#ddlGM').append('<option value=' + 3 + '> + Test 3 + </option>');
                $('#ddlGM').append('<option value=' + 4 + '> + Test 4 + </option>');
                bDataLoded = true;
            }
            $('#ddlGM').blur();
        })
    });

</script>
<body>
<form id="form1" runat="server">
<div>
    <asp:DropDownList runat="server" ID="ddlGM"   Width="150px" AutoPostBack="True" style="height: 22px" >
    </asp:DropDownList>
</div>
</form>

希望这能解决您的问题。