0

更新パネル内に複数のバインドされたフィールドを持つグリッド ビューがあります。最後の 2 つのバインドされたフィールドは、クリックするとポスト バックなしで別のグリッド ビューを表示しますが、script-manager の EnablePartialRendering="false" を設定する以外は機能しませんが、この場合はバインドされたフィールドを表示するように更新パネルが機能しない

ここに画像の説明を入力

    <asp:ScriptManager ID="ScriptManager1"  runat="server">  
 </asp:ScriptManager>  
 <asp:UpdatePanel ID="UpdatePanel1" runat="server" >  
<contenttemplate>  

 <div id="DivImages" runat="server" visible="false" class="block rnd">
            <div class="title2">الأحكـــــــــــام</div>
            <div class="content2">

     <asp:gridview ID="GvImages" runat="server"  PagerStyle-CssClass="pages"   AllowPaging="True" 
                        AutoGenerateColumns="False" CellSpacing="-1" Width="100%" DataKeyNames="DocCode,IssuesID" 
       CssClass="dataGrid"   OnPageIndexChanging="GvImages_PageIndexChanging" GridLines="None" 
                        PageSize="20" OnRowCommand="GvImages_RowCommand" 
                        OnSelectedIndexChanging="GvImages_SelectedIndexChanging">
<AlternatingRowStyle BackColor="White" />
<Columns>

<asp:TemplateField HeaderText="رقم السجــل">   
     <ItemTemplate>
             <%# Container.DataItemIndex + 1 %>   
     </ItemTemplate>
 </asp:TemplateField>


 <asp:BoundField DataField="DocCode" HeaderText="رقم الحكم/ القرار"   SortExpression="DocCode" />
    <asp:BoundField DataField="IssuesNum" HeaderText="كود القضيه" 
        SortExpression="IssuesNum" />
                <asp:BoundField DataField="TypeName" HeaderText="نوع القضيه" 
        SortExpression="TypeName" />
         <asp:BoundField DataField="Year" HeaderText="السنه" 
        SortExpression="Year" />

            <asp:BoundField DataField="Area" HeaderText="المنطقه" 
        SortExpression="Area" />



      <asp:BoundField DataField="DocTypeName" HeaderText="تصنيــف المستند" SortExpression="DocTypeName" />

    <asp:BoundField DataField="Name" HeaderText="نوع المستند" 
        SortExpression="Name" />

            <asp:TemplateField  HeaderText="حذف">

                            <ItemTemplate>
                                <asp:LinkButton ID="cmd_DeleteRow"   CommandName="DeleteRow"  CssClass="delete" ToolTip="حذف" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" runat="server" OnClientClick="return confirmDeleteRow()" />
                            </ItemTemplate>
                            <HeaderStyle Width="125px" />
                        </asp:TemplateField>

      <asp:CommandField SelectText="عرض"  HeaderText="عرض" ShowHeader="True" ShowSelectButton="True">  
                    <HeaderStyle HorizontalAlign="Right" />
                    </asp:CommandField>

                        <asp:TemplateField  HeaderText="تحميل">

                            <ItemTemplate>
                                <asp:LinkButton ID="DownLoad" CommandName="DownLoad"   Text="تحميل" ToolTip="تحميل" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" runat="server" />
                            </ItemTemplate>
                            <HeaderStyle Width="125px" />
                        </asp:TemplateField>


</Columns>
  <RowStyle Height="25px" />
                    <HeaderStyle Height="30px" />
                    <PagerStyle CssClass="pages" Wrap="false" />
</asp:gridview>

</div>
</div>


 </contenttemplate>
 <Triggers>

ボタン検索で、グリッドをバインドします

このコードのように

    protected void ShowDoc(string sCondition)
    {
    //declare connection by pass connection string from web.config
    SqlConnection sqlcon = new SqlConnection
        (ConfigurationManager.ConnectionStrings["SystemConn"].ConnectionString);

    //declare sql statment  as astring variable

    if (Session["Image"] != null)
    {
        Session.Remove("Image");
    }
    try
    {
        SqlStatment = string.Format("select distinct IssuesNum,DocType,DocTypeSub,DocCode,DocTypeName,Name,IssuesID,TypeID,TypeName,Area,IssuesNumSplited,Year   from [View_ImagesSearch] Where {0}  Order By [IssuesNumSplited] ASC", sCondition);

        //create asql command and pass for it the connection string and sql statment
        SqlCommand sqlcom = new SqlCommand(SqlStatment, sqlcon);

        //create data adaptor to bring data from database
        SqlDataAdapter sad = new SqlDataAdapter(sqlcom);

        // declare dataset to store data from data base in it
        DataSet ds = new DataSet();

        //fill data set with data adabter that contain data from database
        sad.Fill(ds);
        lblDocCount2.Text = ds.Tables[0].Rows.Count.ToString();
        Session["Image"] = ds;
        GvImages.DataSource = ds;
        GvImages.DataBind();

    }
    catch (Exception ex)
    {
        par_ErrorMessage.Visible = true;
        par_ErrorMessage.InnerText = ex.Message;
    }
   }

عرض updatepanel というコマンドをクリックすると、別のグリッドビューが表示されますが、アイテム テンプレートのダウンロードをクリックすると、EnablePartialRendering="False" を設定するまで正常に動作しません。

4

1 に答える 1

0

でDataBindを呼び出した後、 Updateを呼び出していることを確認してください。UpdatePanelGridView

GridView.DataBind();
UpdatePanel.Update();

他の可能な解決策については、これを参照してください。

于 2013-02-21T16:19:39.187 に答える