我创建一个自定义的下列与阿贾克斯dropdownextender.在我的拖板我linkbuttons为我的选择。

<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.Attributes.Add("onclick", "setDDL(" + lb.Text + ")");  

lb.Click += new EventHandler(OnSelect);  

并且还

lb.OnClientClick = "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()");
有帮助吗?

解决方案

我不知道你setDDL方法不会在你的脚本,但它应该火灾,如果其中一个链接的按钮是点击。我想你可能会更好,只是插入一个一般html锚虽然相反的一个。净linkbutton为你会有没有提到控制服务器上面。然后你可以处理的数据excahnge你setDDL方法。此外,您可能想引用的字符串你都把内部的呼吁setDDL因为将导致本脚本问题(如不调用的方法+页错误)给你把文字串的数据没有报价。

其他提示

好吧,我用文字创造锚标签与onclicks他们,这似乎是伟大的工作。谢谢很多。

添加或许应该是这样的(添加"周围的串并添加a;到底javascript发言).

lb.Attributes.Add("onclick", "setDDL('" + lb.Text + "');");

或!

设置 OnClientClick酒店 在linkbutton.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top