单击超链接时,我创建一个包含下拉列表(用户列表)和按钮的对话框。单击按钮时,我需要检索所选用户。
问题是我无法在下拉列表中添加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});";
如何检索所选项目?
答案 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);
}