2011-01-27 18 views
0

我在default.aspx中有以下功能.....我有webusercontrol有10個複選框和1個按鈕....我想要當我點擊用戶控件的button1然後它可以訪問default.aspx的功能... page ...如果我把usercontrol拖到default.aspx如何將.aspx頁面中的jquery函數調用到asp.net中的usercontrols控件?

通常,如果我在default.aspx中使用10個複選框和1個按鈕,那麼它工作正常......如果我在用戶控件中使用10checkboxes和1button,然後拖動該用戶控制在default.aspx然後它不會工作..

是什麼問題...如何解決這個問題?

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %> 

<%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

     <uc1:WebUserControl ID="WebUserControl1" runat="server" /> 

    </div> 
    </form> 
    <script src ="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script> 
     <script type="text/javascript"> 

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

    var vCheckedCBCount = $("input:checkbox").filter(function(index){ 
    return $(this)[0].checked == true; 
    }).length; 
    if(vCheckedCBCount > 1) 
    { 
     alert('You cannot check more than 1 check box.'); 
     return false; 
    } 
}); 
</script > 
    </body> 
</html> 

回答

0

嘗試這一個 - >

--------------------------------- --- ASPX代碼--------------------------------------------- ---------------------------------

ASPX:

<%@ Register Src="~/UserControl/WebUserControl.ascx" TagName="ucCheckBox" TagPrefix="UC" %> 

<UC:ucCheckBox ID="ucCheckBox" runat="server" /> 

JAVASCRIPT:

$(document).ready(function(){ 

    $("input:submit[id$='btnSubmit']").click(function(){ 

     var vCheckedCBCount = $("input:checkbox").filter(function(index){ 
     return $(this)[0].checked == true; 
     }).length; 
     if(vCheckedCBCount > 5) 
     { 
      alert('You cannot check more than 5 check box.'); 
      return false; 
     } 
    }); 
}); 

------------------------------------ ASPX代碼---- -------------------------------------------------- ------------------------

-------------------- -----------用戶控制代碼------------------------------------ -

用戶控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="UserControl_WebUserControl" %> 
<asp:CheckBox ID="CheckBox1" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox2" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox3" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox4" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox5" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox6" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox7" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox8" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox9" runat="server" /><br /> 
<asp:CheckBox ID="CheckBox10" runat="server" /><br /> 
<asp:Button ID="btnSubmit" runat="server" Text="Continue" /> 

-------------------------------用戶控制代碼------------ --------------------------

0

當您添加的用戶控件到Default.aspx的,Button1的ID改爲userControl1_Button1

所以,你需要改變$("#Button1").click(function(),使其始終按鈕具有正確的名稱:

$("# + <%=Button1.ClientID %> +").click(function() 
+0

任何人都可以redit這段代碼嗎? – user583181 2011-01-27 11:21:28

+0

您需要更新您的問題以顯示聲明Button1的HTML。 – 2011-01-27 11:22:58

+0

我有更新ny default2.aspx頁面,我拖動usercontrol ..have已更新的代碼 – user583181 2011-01-27 11:29:25

0

嘗試

$("#'<%=Button1.ClientID %>'").click(function(){ 
}); 

一個usercontrol實現INamingContainer接口。因此,爲了使用id獲取元素,您需要使用.ClientID來獲得運行時生成的id。

相關問題