2011-05-13 114 views
0

我有一个嵌套的更新面板 像这样嵌套更新面板问题

<asp:UpdatePanel ID="DetailsUpdatePanel" runat="server" Visible="false" UpdateMode="Conditional" > 
    <ContentTemplate> 
    <div><ajaxToolkit:AsyncFileUpload runat="server" ID="BrochureUpload" Width="400px" 
      OnClientUploadError="BrochureuploadError"  
      OnClientUploadStarted="BrochureStartUpload" 
      OnClientUploadComplete="BrochureUploadComplete" 
      CompleteBackColor="Lime" UploaderStyle="Modern"  
      ErrorBackColor="Red" ClientIDMode="AutoID"  
      ThrobberID="Throbber"  
      UploadingBackColor="#66CCFF" 
       onuploadedcomplete="BrochureUpload_UploadedComplete"/> 
       <asp:Label ID="Label1" runat="server" Style="display: none"> 
    <asp:Image runat="server" ID="Image1" ImageUrl="~/Images/uploading.gif" /> 
      </asp:Label> 
     <asp:Label ID="brochurelblstatus" runat="server" Style="font-family: Arial; font-size: small;"></asp:Label></div> 
    <div><asp:UpdatePanel runat="server" ID="child" UpdateMode="Conditional" > 
       <ContentTemplate> 
       <div> 
    <asp:GridView ID=GridView2" runat="server" AllowPaging="true" AutoGenerateColumns="false" CellPadding="0" CellSpacing="1" DataKeyNames="ArticleId"> 
     <Columns> 
     <asp:BoundField DataField="ArticleId" HeaderText="ArticleId" ReadOnly="True" HeaderStyle-CssClass="td1" /> 
     <asp:BoundField DataField="FileName" HeaderText="FileName" ReadOnly="True" HeaderStyle-CssClass="td2" /> 
     <asp:TemplateField HeaderText="BrochureUrl"> 
     <ItemTemplate> 
     <asp:HyperLink ID="lnkEPhoto" runat="server" BorderWidth="2px" NavigateUrl='<%# GetUrl(Eval("ArticleId"),Eval("FileName")) %>' 
        Target="_blank"></asp:HyperLink> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField> 
     <ItemTemplate> 
     <asp:LinkButton ID="btnRemove" runat="server" text="Delete" CommandName="Delete" CausesValidation="False" OnClientClick="DeleteOrNo()"> 
     </asp:LinkButton> 
     </ItemTemplate> 
     </asp:TemplateField> 
     </Columns> 
     </asp:GridView> 
      </div> 

       </ContentTemplate> 

       </asp:UpdatePanel></div> 
    </ContentTemplate> 
    </updatePanel> 

代码隐藏:

protected void BrochureUpload_UploadedComplete(object sender, AsyncFileUploadEventArgs e) 
       { 
        if(BrochureUpload.HasFile) 
        { 
         if(BrochureUpload.PostedFile.ContentLength<=3670016) 
         { 
          var brochurePath = MapPath("~/") + Path.GetFileName(e.filename); 
          BrochureUpload.SaveAs(brochurePath); 
          using (var dataContext = new NewsStandAloneDataContext(Config.StandaloneNewsConnectionString)) 
          { 
           var brochure = new xxx 
                { 
                 Id = Convert.ToInt32(GridView1.SelectedValue), 
                 FileName = Path.GetFileName(e.filename), 
                 RecordCreated = DateTime.Now 
                }; 
           dataContext.xxx.InsertOnSubmit(brochure); 
           dataContext.SubmitChanges(); 
          } 
          bindGridView();//I have code to bind gridview 
    Child.Update(); 


         } 
        } 
       } 

    protected void bindBrochureGridView() 
      { 
       using (var dataContext = new NewsStandAloneDataContext(Config.StandaloneNewsConnectionString)) 
       { 
        var brochureList = (from brochure in dataContext.xxx 
             where brochure.ArticleId == Convert.ToInt32(GridView2.SelectedValue) 
             select new ArcticleBrochure 
                { 
                 ArticleId = brochure.ArticleId.ToString(), 
                 FileName = brochure.FileName 

                }).ToList(); 
        GridView1.DataSource = brochureList; 
        GridView1.DataBind();   

       } 
      } 

当我上传的文件,我想giedview这是在孩子的UpdatePanel要更新。但它不工作任何想法?????

在此先感谢

+1

嘿,编辑你的问题,这是不可能理解发生了什么,并且放置代码注释以便引导我们了解你在那里做什么! ;) – 2011-05-13 13:45:31

回答

1

致电child.Update();BrochureUpload_UploadedComplete事件中。

protected void BrochureUpload_UploadedComplete(object sender, AsyncFileUploadEventArgs e) 
{ 
    .................... 
    .................... 
    bindGridView();//I have code to bind gridview 
    child.Update(); 
} 
+0

嘿我已经做到了,但没用。, – pinki 2011-05-13 10:57:41

+0

什么都没用,我还没有弄明白吗?你的意思是,你没有调用child.update()方法? – 2011-05-13 10:59:22

+0

嘿我已经完成child.upate()在我的代码中,仍然面临同样的问题 – pinki 2011-05-13 12:25:18

1

当文件上传完毕,然后调用UpdatePanel包含的GridView Child.Update()方法。你需要这样做,因为你在这种情况下设置了UpdateMode="Conditional",你必须在代码中手动更新它。

+0

做到了,但我还没有得到结果 – pinki 2011-05-13 10:58:01

+0

你有没有更新你的GridView?首先你必须更新你的girdview然后调用update方法。 – jams 2011-05-13 10:59:30

+0

我应该在哪里更新gridview?在sameOnuploadedComplete事件中 – pinki 2011-05-13 12:45:24

0

ChildrenAsTriggers="True"在你的updatepanel中。

+0

k我会试试看,并回到你身边 – pinki 2011-05-13 13:51:47

+0

嘿,没有运气我已经试过这个,但同样的问题任何其他方式? – pinki 2011-05-13 13:56:45

+0

child.update从codebehind然后? – David 2011-05-13 14:50:39