【问题标题】:checkbox inside a gridview within updatepanelupdatepanel中gridview内的复选框
【发布时间】:2013-04-10 05:49:53
【问题描述】:

我在第一列有一个gridview 和一个checkbox。我设置了autopostback="true"checkbox 属性。 gridviewupdatepanel 内。当checkboxchecked 时,我想让一个panel 可见,哪个面板在更新面板之外。我用检查点检查代码,这是通过代码,但它不起作用。谁能帮帮我?..

提前致谢。

我的代码在这里供您参考......

HTML 代码:

<asp:Panel ID="ploperation" runat="server" CssClass="plop" Visible="False">
    <asp:LinkButton ID="lbtnasspam" runat="server" CssClass="panelbtn" Font-Names="Calibri"
                    Font-Size="14px" Font-Underline="False" OnClick="lbtnasspam_Click">Report As Spam</asp:LinkButton>
</asp:Panel>

 <asp:UpdatePanel ID="up" runat="server">
     <ContentTemplate>
         <asp:GridView ID="gvmail" runat="server" AllowPaging="True" AutoGenerateColumns="False">

              <Columns>
                  <asp:TemplateField>
                      <ItemTemplate>
                          <asp:CheckBox ID="chkchild" runat="server" AutoPostBack="true" OnCheckedChanged="chkchild_CheckedChanged"/>
                      </ItemTemplate>
                      <ItemStyle Width="15px" />
                  </asp:TemplateField>
              </Columns>         
         </asp:GridView>
     </ContentTemplate>                        
</asp:UpdatePanel>

C#代码:

protected void chkchild_CheckedChanged(object sender, EventArgs e)
{
    ploperation.Visible = true;
}

【问题讨论】:

  • 更新面板会加载部分页面......所以如果你想显示你的面板而不是将它也包含在你的更新面板中。
  • @AmitSingh 谢谢......它在更新面板中工作......
  • @AmitSingh 是否可以在更新面板之外进行此操作?
  • 没有朋友,除非你使用 ajax 或进行正常的页面加载

标签: asp.net gridview updatepanel autopostback


【解决方案1】:

您可以使用initializeRequest - 当异步回发发生时引发此事件(当您选中网格视图中的复选框时,它会启动异步回发,因为它位于更新面板内)。

只需将 ploperation 更改为 div 而不是 &lt;asp:Panel 即可使用 javascript 显示/隐藏它:

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(initializeRequest);

    function initializeRequest(sender, args) {
        document.getElementById('ploperation').style.display = 'block';
    }

</script>
<asp:UpdatePanel ID="up" runat="server">
    <ContentTemplate>
        <asp:GridView ID="gvmail" runat="server" AllowPaging="True" AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkchild" runat="server" AutoPostBack="true" />
                    </ItemTemplate>
                    <ItemStyle Width="15px" />
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>
<div id="ploperation" style="display:none;" runat="server">
    <asp:LinkButton ID="lbtnasspam" runat="server" CssClass="panelbtn" Font-Names="Calibri"
        Font-Size="14px" Font-Underline="False" OnClick="lbtnasspam_Click">Report As Spam</asp:LinkButton>
</div>
</form>

或者你可以坚持你已经完成的方式,只需将 &lt;asp:Panel 放在 UpdatePanel -> ContentTemplate 中

【讨论】:

    【解决方案2】:

    更新面板会加载部分页面...... check link

    所以如果你想显示你的面板而不是将它也包含在你的更新面板中。

    【讨论】:

      【解决方案3】:

      将 UpdatePanel 放在要更改的控件上,而不是 GridView 上。不要忘记在触发器部分引用 GridView。例如,如果要更改标签文本,请使用以下代码:

      <asp:UpdatePanel ID="up" runat="server">
      <ContentTemplate>
          <asp:Label ID="Label1" runat="server" Text="" />
      </ContentTemplate>
      <Triggers>
              <asp:AsyncPostBackTrigger ControlID="gvmail"  />
      </Triggers>
      </asp:UpdatePanel>
      
      <asp:GridView ID="gvmail" runat="server" AllowPaging="True" AutoGenerateColumns="False">
          <Columns>
              <asp:TemplateField>
                  <ItemTemplate>
                      <asp:CheckBox ID="chkchild" runat="server" AutoPostBack="true" OnCheckedChanged="chkchild_CheckedChanged"/>
                  </ItemTemplate>
                  <ItemStyle Width="15px" />
              </asp:TemplateField>
          </Columns>         
      </asp:GridView>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        相关资源
        最近更新 更多