我使用AJAX dropdownextender創建了自定義下拉列表。在我的下拉麪板中,我有我的選項linkbuttons。Linkbutton單擊事件沒有運行處理程序
<asp:Label ID="ddl_Remit" runat="server" Text="Select remit address."
Style="display: block; width: 300px; padding:2px; padding-right: 50px; font-family: Tahoma; font-size: 11px;" />
<asp:Panel ID="DropPanel" runat="server" CssClass="ContextMenuPanel" Style="display :none; visibility: hidden;">
<asp:LinkButton runat="server" ID="Option1z" Text="451 Stinky Place Drive <br/>North Nowhere, Nebraska 20503-2343 " OnClick="OnSelect" CssClass="ContextMenuItem" />
<asp:LinkButton runat="server" ID="Option2z" Text="451 Stinky Place Drive <br/>North Nowhere, Nebraska 20503-2343 " OnClick="OnSelect" CssClass="ContextMenuItem" />
<asp:LinkButton runat="server" ID="Option3z" Text="451 Stinky Place Drive <br/>North Nowhere, Nebraska 20503-2343 " OnClick="OnSelect" CssClass="ContextMenuItem" />-->
</asp:Panel>
<ajaxToolkit:DropDownExtender runat="server" ID="DDE"
TargetControlID="ddl_Remit"
DropDownControlID="DropPanel" />
而且這個效果很好。現在我要做的就是動態填充這個下拉列表。這是我最好的嘗試:
private void fillRemitDDL()
{
//LinkButton Text="451 Stinky Place Drive <br/>North Nowhere, Nebraska 20503-2343 " OnClick="OnSelect" CssClass="ContextMenuItem"
DAL_ScanlineTableAdapters.SL_GetRemitByScanlineIDTableAdapter ta = new DAL_ScanlineTableAdapters.SL_GetRemitByScanlineIDTableAdapter();
DataTable dt = (DataTable)ta.GetData(int.Parse(this.SLID));
if (dt.Rows.Count > 0)
{
Panel ddl = this.FindControl("DropPanel") as Panel;
ddl.Controls.Clear();
for (int x = 0; x < dt.Rows.Count; x++)
{
LinkButton lb = new LinkButton();
lb.Text = dt.Rows[x]["Remit3"].ToString().Trim() + "<br />" + dt.Rows[x]["Remit4"].ToString().Trim() + "<br />" + dt.Rows[x]["RemitZip"].ToString().Trim();
lb.CssClass = "ContextMenuItem";
lb.Attributes.Add("onclick", "setDDL(" + lb.Text + ")");
ddl.Controls.Add(lb);
}
}
}
我的問題是,我不能讓事件來運行腳本!我已經嘗試了上面的代碼,以及與
lb.Click += new EventHandler(OnSelect);
也
lb.OnClientClick = "setDDL(" + lb.Text + ")");
更換
lb.Attributes.Add("onclick", "setDDL(" + lb.Text + ")");
我與客戶端並獲得警報測試的分支沒有。
編輯: 我想嘗試添加通用錨,但我想我可以將該元素添加到一個asp.net控件。我也不能從服務器代碼訪問客戶端div來添加它。我將不得不對事件進行某種控制。我setDLL功能發生如下:
function setDDL(var)
{
alert(var);
document.getElementById('ctl00_ContentPlaceHolder1_Scanline1_ddl_Remit').innerText = var;
}
此外,我只是拿出在函數調用的字符串變量(即從
lb.Attributes.Add("onclick", "setDDL(" + lb.Text + ")");
到
lb.Attributes.Add("onclick", "setDDL()");