2011-05-21 158 views
1

我遇到了一个问题,我有一个jquery模式弹出窗口,在我的用户控件中,我点击一个按钮显示,用户从datalist中选择一些东西,然后我返回父值在一个隐藏字段中的所有用户控制是精细到这里,但是,选择按钮点击后,我想jQuery的模式被也被关闭 这里是div的一些代码,我显示模式diaog关闭Jquery Modal弹出窗口Datalist按钮点击

<asp:UpdatePanel ID="upDatagrabber" runat="server"> 
<ContentTemplate> 
    <table> 
     <tr> 
      <td>Select Category</td><td><asp:DropDownList ID="ddlTemplateCatagory" 
       runat="server" AutoPostBack="True"></asp:DropDownList></td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <table cellspacing="0" cellpadding="0" border="0" style="float:left;padding:5px;margin:5px;width:200px;display:block;"> 
         <tbody> 
          <tr> 
           <asp:DataList ID="dlTemplates" runat="server" RepeatColumns="3" 
            RepeatDirection="Horizontal" onitemcommand="dlTemplates_ItemCommand"> 
            <ItemTemplate> 
             <td style="border-right: gainsboro 1px solid; border-top: gainsboro 1px solid; 
              border-left: gainsboro 1px solid; border-bottom: gainsboro 1px solid;padding:5px;"> 
              <table><tr><td> 
              <%# Eval("NewsletterName").ToString()%> 
              </td></tr> 
              <tr><td><asp:Button ID="btnSelectNL_Template" Text="Select" runat="server" CssClass="button" CommandArgument='<%# Eval("NewsletterId").ToString()%>' CommandName="Select"/></td></tr> 
              </table> 
             </td> 
            </ItemTemplate> 
           </asp:DataList> 
          </tr> 
         </tbody> 
       </table> 
      </td> 
     </tr> 
    </table> 
</ContentTemplate> 

和ItemCommandEvent我试过以下

protected void dlTemplates_ItemCommand(object source, DataListCommandEventArgs e) 
    { 
     if (e.CommandName == "Select") 
     { 
      int SelectedNewsletterId = int.Parse(e.CommandArgument.ToString()); 
      if (NewsletterSelectedHandler!= null) 
      { 
             e.Item.Attributes.Add("onclick","jQuery('#mydialog').dialog('close');"); 
       NewsletterSelectedHandler(SelectedNewsletterId); 
      } 
     } 
    } 

编辑

我表明,使用该弹出在我后面的代码

ScriptManager.RegisterClientScriptBlock(this.Page, Page.GetType(), "change", "jQuery('#mydialog').dialog('open');closedialog = 1;jQuery('#mydialog').parent().appendTo(jQuery('form:aspnetForm'));", true); 

弹出成功显示,但我不能关闭它在数据列表子按钮按一下按钮尝试代码提供我通过tugburk我检查了错误控制台也没有错误 关闭代码如下:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $('#ctl00_ContentPlaceHolder1_NewsletterWizard1_TemplatePicker1_dlTemplates_ctl00_btnSelectNL_Template').click(function(){ 

     $('#mydialog').dialog('close'); 

    }); 

    }); 
</script> 

任何帮助将是明显的 非常感谢在前进

回答

2

使用下面的代码;

$(document).ready(function(){ 

    $('#<%= btnSelectNL_Template.ClientID %>').click(function(){ 

     $('#id_of_your_dialog_element').dialog('close'); 

    }); 

    }); 

编辑: 你有你的硬编码按钮的ID;

ctl00_ContentPlaceHolder1_NewsletterWizard1_TemplatePicker1_dlTemplates_ctl00_b tnSelectNL_Template

DataList控件会产生多个按钮,如果你有多个记录。添加类名到该按钮,并尝试写一个代码对它

$('.MyButtonClass').click(function(){ 
    $('#mydialog').dialog('close'); 
}); 
+0

@Devjosh但这段代码将不会执行您的C#代码。 dlTemplates_ItemCommand事件。 – tugberk 2011-05-21 07:21:35

+0

@tugberk,它没有工作不要担心我的服务器端代码即使在你的建议脚本后运行正常,但模式不关闭 – Devjosh 2011-05-21 07:27:07

+0

@Devjosh它应该有。我在网上提供了一个样本。 tyr这个:http://jsfiddle.net/tugberk/Z2EVJ/ – tugberk 2011-05-21 07:34:50

相关问题