【问题标题】:How to get the checkbox id that placed in a repeater for update panel?如何获取放置在更新面板中继器中的复选框 ID?
【发布时间】:2018-01-25 09:15:08
【问题描述】:

我在转发器中有复选框,转发器放置在更新面板内。复选框有一个选中的更改事件,我需要复选框的 id,以便我可以在触发器内的 autopostbacktrigger 中声明它。但是我无法访问该 ID,因为它位于中继器内。如何获取复选框的 id?

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="row">
            <div class="col-md-4">
                <div style="padding-top: 10px; padding-left: 20px;">
                    <asp:Panel runat="server" Style="height: 300px;" ID="pnl1" Visible="false" CssClass="panel pre-scrollable panel-default mypnl">
                        <!-- Default panel contents -->
                        <div class="panel-heading">
                            Job Status List
                                    <div class="pull-right">
                                        <a style="margin-top: -5px;" data-toggle="modal" data-target="#myModal" class="col-xs-12 btn btn-sm btn-default"><i class="glyphicon glyphicon-plus"></i></a>
                                    </div>
                        </div>
                        <!-- List group -->
                        <ul class="list-group">
                            <asp:Repeater ID="rep1" runat="server" OnItemDataBound="rep1_ItemDataBound">
                                <ItemTemplate>
                                    <li class="list-group-item">
                                        <%# Eval("Description")%>
                                        <div class="pull-right">
                                            <asp:CheckBox runat="server" AutoPostBack="true" OnCheckedChanged="chkstatus_CheckedChanged" ChkDesc='<%# Eval("Description")%>' ChkId='<%# Eval("ID")%>' ID="chkstatus" />
                                        </div>
                                    </li>
                                </ItemTemplate>
                            </asp:Repeater>
                        </ul>
                    </asp:Panel>
                </div>
            </div>
            <div class="col-md-8">
                <div style="padding-top: 10px; padding-left: 0px;">
                    <asp:Panel runat="server" Style="height: 166px;" ID="pnl2" Visible="false" CssClass="panel pre-scrollable panel-default">
                        <!-- Default panel contents -->
                        <div class="panel-heading">
                            Job Sequence
                        </div>
                        <!-- List group -->
                        <ul class="list-group">
                        </ul>
                    </asp:Panel>
                </div>
            </div>

        </div>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="chkstatus" EventName="Checked" />
    </Triggers>
</asp:UpdatePanel>

【问题讨论】:

    标签: asp.net ajaxcontroltoolkit


    【解决方案1】:

    如果它们在 UpdatePanel 中,您只需要在想要触发正常的 PostBack 时注册它们。

    但你会发现它们是这样的:

    foreach (RepeaterItem item in rep1.Items)
    {
        CheckBox cb = item.FindControl("chkstatus") as CheckBox;
        ScriptManager.GetCurrent(Page).RegisterPostBackControl(cb);
        //or
        ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(cb);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      相关资源
      最近更新 更多