我在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");
}
答案 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>
希望这能解决您的问题。