每个datalist行中的UpdatePanel

时间:2011-05-12 07:00:04

标签: asp.net asp.net-ajax updatepanel datalist

我正在尝试更新每个DataList行而不必PostBack整个DataList。

基本上我想和

一起去
<DataList>
   <ItemTemplate>
      <UpdatePanel>
      </UpdatePanel>
   </ItemTemplate>
</DataList>

而不是

<UpdatePanel>
   <DataList>
      <ItemTemplate>
      </ItemTemplate>
   </DataList>
</UpdatePanel>

这是可能的,还是更好的 - 它有意义吗?

1 个答案:

答案 0 :(得分:0)

,有可能,我个人在某些情况下这样做。

但是你必须意识到,使用UpdatePanel并不是一个完美的解决方案。例如,客户端发送了页面的完整ViewState。所以会有收获,但没有你想象的那么大。

我建议您阅读 UpdatePanel注意事项部分in this link以获取更多信息。

更新:

您还必须注意如何设置模板,例如:您不能在更新面板中放置表格行。

不要这样做:

<asp:DataList>
   <HeaderTemplate>
      <Table>
   </HeaderTemplate>

   <ItemTemplate>
     <UpdatePanel>
         <tr>
             <td>...</td>
             <td>...</td>
         </tr>
     </UpdatePanel>
   </ItemTemplate>
   <FooterTemplate>
      </Table>
   </FooterTemplate>
</asp:DataList>

但你不能这样做:

<asp:DataList>
   <HeaderTemplate>
      <Table>
   </HeaderTemplate>

   <ItemTemplate>
     <UpdatePanel>
     <tr>
         <td>
             <UpdatePanel>
                ...
             </UpdatePanel>
         </td>
     </tr>
   </ItemTemplate>
   <FooterTemplate>
      </Table>
   </FooterTemplate>
</asp:DataList>