动态加载用户控件和javascript

时间:2012-07-17 04:47:51

标签: javascript asp.net dynamic user-controls

我需要在页面中动态加载用户控件。我在用户控件中有一个带有复选框的gridview。

enter image description here

用户控件将根据单击的选项卡动态加载。

用户可以在点击最顶部的复选框时选中所有复选框。

我正在使用javascript来执行此功能。

javascript仅在我点击联系人时有效,但是当我点击其他标签时.javascript无效。

我打开了查看源视图。联系人只有JavaScript。

我看不到销售订单和交货单的任何javascript。

另外,我在每个差异用户控件中嵌入了javascript 这是我的javascript

    <script type="text/javascript">
    function SelectAllCheckboxes1(chk) {
        $('#<%=gvSaleOrder.ClientID%>').find("input:checkbox").each(function () {
            if (this != chk) {
                this.checked = chk.checked;
            }
        });
    }    
    </script>




<asp:GridView ID="gvSaleOrder" runat="server" AllowPaging="True" AutoGenerateColumns="False"
                                CellPadding="4" CssClass="rightColumnModule2Table" DataKeyNames="SALES_ID,SALES_ORDER_CODE,STATUS"
                                ForeColor="#333333" GridLines="None" OnRowCommand="gvSaleOrder_RowCommand"
                                OnRowDataBound="gvSaleOrder_RowDataBound">
                                <AlternatingRowStyle CssClass="gvRowAlternative" />
                                <Columns>
                                <asp:TemplateField>
                                        <HeaderTemplate>
                                            <asp:CheckBox ID="chkSelectAll" runat="server" onclick="javascript:SelectAllCheckboxes1(this);"/>
                                        </HeaderTemplate>
                                        <ItemTemplate>
                                            <asp:CheckBox ID="chkSelect" runat="server" />
                                        </ItemTemplate>
                                        <ItemStyle CssClass="gvRow1C" />
                                    </asp:TemplateField>

                                  <asp:TemplateField HeaderText="Sales Order Number">
                                        <ItemTemplate>
                                            <asp:LinkButton ID="lnkOrderNumber" runat="server" CommandArgument='<%#Eval("SALES_ORDER_CODE") %>'
                                                CommandName="View" Text='<%#Eval("SALES_ORDER_CODE") %>' ></asp:LinkButton>
                                        </ItemTemplate>
                                        <ItemStyle CssClass="gvRow1C" />
                                    </asp:TemplateField>

                                     <asp:TemplateField HeaderText="Date">
                                        <ItemTemplate>
                                            <asp:Label ID="lblSalesOrderDate" runat="server" Text='<%#Eval("SALES_ORDER_DATE") %>'></asp:Label>

                                        </ItemTemplate>
                                        <ItemStyle CssClass="gvRow1C" />
                                    </asp:TemplateField>


                                    <asp:BoundField DataField="ACCOUNT_OWNER" HeaderText="Customer Name" ReadOnly="True"
                                        SortExpression="ACCOUNT_OWNER">
                                        <ItemStyle CssClass="gvRow1C" ForeColor="Black" />
                                    </asp:BoundField>

                                         <asp:TemplateField HeaderText="Total Amount">
                                        <ItemTemplate>
                                          <asp:Label ID="lblCurrency" runat="server" Text='<%#Eval("CURRENCY_NAME") %>'></asp:Label>
                                            <asp:Label ID="lblTotalAmount" runat="server" Text='<%#Eval("TOTAL_AMOUNT") %>'></asp:Label>
                                        </ItemTemplate>
                                        <ItemStyle CssClass="gvRow1C" />
                                    </asp:TemplateField>

                                    <asp:TemplateField HeaderText="Status">
                                        <ItemTemplate>
                                            <asp:Label ID="lblStatus" runat="server" Text='<%#Eval("STATUS") %>'></asp:Label>

                                        </ItemTemplate>
                                        <ItemStyle CssClass="gvRow1C" />
                                    </asp:TemplateField>

                                  <asp:TemplateField HeaderText="Action">
                                        <ItemTemplate>
                                            <table width="100%">
                                                <tr>
                                                    <td >
                                                        <asp:LinkButton ID="linkEdit" runat="server"  CommandArgument='<%#Eval("SALES_ORDER_CODE") %>'
                                                            CommandName="Edits">Edit</asp:LinkButton>
                                                                &nbsp;
                                                              <asp:LinkButton ID="linkDelete" runat="server" CommandArgument='<%#Eval("SALES_ORDER_CODE") %>'
                                                            CommandName="Deletes" OnClientClick="javascript:return confirm('Confirm Delete?');">Delete</asp:LinkButton>
                                                    </td>

                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                        <ItemStyle CssClass="gvRow1C" />
                                    </asp:TemplateField>

我的后端

 private void loadControl()
 {


     if(  (string)Session[subTaskURL] != "")
     {
         Control control = this.LoadControl(Session[subTaskURL].ToString());
         if (control != null)
         {
             // Gives the control a unique ID. It is important to ensure
             // the page working properly. So use control.GetType().Name
             // as the ID.
             control.ID = control.GetType().Name;
             phSubContent.Controls.Add(control);
         }
     }
 }

//--Ensure all control will be dispose--
 public override void Dispose()
 {

     for (int i = 0; i < phSubContent.Controls.Count; i++)
     {
         Control ctrl = phSubContent.Controls[i];
         if (ctrl != null)
             ctrl.Dispose();
     }
     base.Dispose();
 }
 //**Ensure all control will be dispose**

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    //--Run on first time .Get default menu for the item--
    if (Session["subTaskID"] == null)
    {
        selectTopSubMenu();

    }
    adjustAccessLevelDB();
    loadControl();

}

Here是我遵循的参考。

0 个答案:

没有答案
相关问题