2013-04-10 61 views
1

我有一个gridviewcheckbox在第一列。我设置了checkbox财产autopostback="true"gridview位于updatepanel之内。当checkboxchecked我想使一个panel可见,哪个面板在更新面板之外。我用检查点检查代码,这是通过代码,但它不工作。任何人都可以帮我吗?在更新面板内的gridview内的复选框

在此先感谢。

我的代码是在这里,供大家参考......

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; 
} 
+0

更新面板做局部页面加载....所以如果u瓦纳显示面板乌尔比还包括在乌拉圭回合的更新面板。 – 2013-04-10 06:02:23

+0

@AmitSingh谢谢..其更新面板中的作品... – ragu 2013-04-10 06:13:02

+0

@AmitSingh是否有可能在更新面板之外进行此操作? – ragu 2013-04-10 06:13:55

回答

0

更新面板做局部页面加载.... check link

所以如果你想显示你的面板比incl也可以在你的更新面板中使用。

1

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

只要改变ploperation到一个div而不是<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> 

或者你可以坚持你做的方式,只需将<asp:Panel里面的UpdatePanel - > ContentTemplate

0

将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>