Asp.NET下拉内部对话框

时间:2015-10-29 16:39:33

标签: javascript jquery asp.net dropdown

单击超链接时,我创建一个包含下拉列表(用户列表)和按钮的对话框。单击按钮时,我需要检索所选用户。

问题是我无法在下拉列表中添加AutoPostBack = true,因为它会使弹出式对话框消失。

POPUP代码

<div runat="server" id="LogonAsPopup" style="display: none;">
    <div class="form">
        <div class="field" style="text-align: center; margin-top: 10px;">
            <ab:LabelledDropDownlist runat="server" ID="ddlUsers" DataTextField="Username" DataValueField="UserID" DataSourceID="dsUsers" Width="200px" />
            <br/>
            <asp:Button runat="server" ID="btLogOn" OnClick="btLogOn_OnClick" style="margin-top: 10px;" UseSubmitBehavior="False"/>                    
        </div>
    </div>

    <asp:ObjectDataSource runat="server" ID="dsUsers" TypeName="Business.UserManager"
        SelectMethod="GetEnabledUsersList">
    </asp:ObjectDataSource>
</div>

点击

protected void btLogOn_OnClick(object sender, EventArgs e)
{
    int selectedUserId = Int32.Parse(ddlUsers.SelectedValue);
}

HYPERLINK NAVIGATE网址

hl.NavigateUrl = "javascript: $('#LogonAsPopup').show(); $('#LogonAsPopup').dialog({title: '" + (String)GetGlobalResourceObject("Labels","LogonAsTitle") + "', width: 500, modal: true});";

如何检索所选项目?

2 个答案:

答案 0 :(得分:0)

尝试取出内联style="display: none;",然后输入Page_Load() put

if(!IsPostBack)
{
    LogonAsPopup.Attributes.Add("style","display:none");
}

这会将display属性设置为none,但仅限于首次加载页面时。现在AutoPostBack将按预期工作

答案 1 :(得分:0)

您可以触发对话框再次显示在下拉列表的_SelectedIndexChanged事件中。这就是我使用的:

protected void ***_SelectedIndexChanged(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:FunctionGoesHere();", true);
}