2013-04-10 55 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>