0

获取启动模式打开所以我的问题是,我有一个Asp.net下拉列表控件的名称列表,最后一个选项打开模式选择添加新名字。我目前显示并隐藏一个div,但我正在将我的应用程序转换为bootstrap,而且我似乎无法获得引导模式,因为我愿意。当Asp.net下拉列表项选择

目前我的模态的div如下:

<asp:Panel ID="AddPOCPanel" runat="server" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">...</asp:Panel> 

在我的代码隐藏,当我填充我的下拉列表中我添加每个引导API所需的属性:

var add = new ListItem("Add Point of Contact"); 
add.Attributes.Add("data-toggle","modal"); 
add.Attributes.Add("data-target","#AddPOCPanel"); 

这里是我的DropDownList的签名:

<asp:DropDownList ID="POC1DropDownList" runat="server" AutoPostBack="true" class="form-control" OnSelectedIndexChanged="POCDropDownList_SelectedIndexChanged"> 
          </asp:DropDownList> 

我已经尝试了一些东西和疯狂e一些意见:

  • 这似乎是唯一的“选项”元素,因为如果我尝试使用链接或按钮代替下拉选项,它工作得很好。所以一个选项的行为不允许我做我正在尝试的东西?
  • 我正在使用AutoPastBack =“true”,其中“覆盖”了模式,但删除它没有任何影响。
+0

请不要使用“引导”标签,使用“twitter-bootstrap”,因为它意味着别的东西 – 2014-10-12 11:22:00

回答

0

我找到了解决方案。我让自己变得比自己更难,而不是操纵DropDownList选项“添加联系人”我做了以下操作:

当用户选择添加联系人的最后一个选项时,我查看了值在我回发(请注意,我用的AutoPostBack =“真”),而如果选择是“添加接触点”选项,然后我做了以下内容:

Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowModal", "$('#AddPOCPanel').modal('show'); $('#MainContent_POC1DropDownList').val('');", false); 

这是一个伟大的解决方案,因为它如果使用验证器,您可以执行以下操作:

protected void SomeButton_Click(object sender, EventArgs e) 
{ 
    if (Page.IsValid) 
    { 
     //Do work then... 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "HideModal", "$('#AddPOCPanel').modal('hide'); $('#MainContent_POC1DropDownList').val('');", true); 
    } 
    else 
    { 
     //Make sure modal stays open... 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowModal", "$('#AddPOCPanel').modal('show'); $('#MainContent_POC1DropDownList').val('');", true); 
    } 

所以希望这可以帮助任何人发现自己在相同的道路上...