温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Repeater中DataSource和数据显示总结

发布时间:2020-05-09 11:33:35 阅读:417 作者:Leah 栏目:编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

今天小编就为大家带来一篇Repeater中DataSource和数据显示总结的文章。小编觉得挺不错的,为此分享给大家做个参考。一起跟随小编过来看看吧。

Content
一、Repeater要能显示数据,其要有数据源,而了解数据源类型,才能匹配正确的数据源:
        查看MSDN:Repeater 的 DataSource 可以是任何 System.Collections.IEnumerable 集合 (如) 访问数据库的 System.Data.DataView , System.Collections.ArrayList或数组或 IListSource 对象。
只要确保数据类型是上所描述,就可以作为Repeater的数据源,就可以通过Repeater来显示数据。
注:为Repeater指定数据源后,记得绑定数据(eg:this.Repeater1.DataBind();).
二、通过代码来展示数据的显示:
    1.页面运行结果:
Repeater中DataSource和数据显示总结
2. 后台主要代码:
#region 定义List<string>的数据源类型  List<string> testDS1 = new List<string>() { "1", "2" };//初始化数据  this.Repeater1.DataSource = testDS1;//指定数据源  this.Repeater1.DataBind();//绑定数据 #endregion   #region   定义List<person>的数据源类型  List<person> testDS2 = new List<person>() { new person(1, "person1"), new person(2, "person2") };//初始化数据  this.Repeater2.DataSource = testDS2;//指定数据源  this.Repeater2.DataBind();//绑定数据 #endregion   #region 定义Dictionary<string,string>的数据源类型  Dictionary<string, string> testDS3 = new Dictionary<string, string>() { { "1", "value1" }, { "2", "value2" } };//初始化数据  this.Repeater3.DataSource = testDS3;//指定数据源  this.Repeater3.DataBind();//绑定数据 #endregion 
3. 前台主要代码:
<div>      <a>第一个repeater显示的数据:</a>      <asp:Repeater ID="Repeater1" runat="server">          <HeaderTemplate>              <table>                  <th>                      显示                  </th>          </HeaderTemplate>          <ItemTemplate>              <tr>                  <td>                      <%#Container.DataItem %>                  </td>              </tr>          </ItemTemplate>          <FooterTemplate>              </table>          </FooterTemplate>      </asp:Repeater>  </div>  <div >      <a>第二个repeater显示的数据:</a>      <asp:Repeater ID="Repeater2" runat="server">          <HeaderTemplate>              <table>                  <th>                      Age                  </th>                  <th>                      Name                  </th>          </HeaderTemplate>          <ItemTemplate>              <tr>                  <td>                      <%#DataBinder.Eval(Container.DataItem,"Age") %>                    </td>                  <td>                     <%#DataBinder.Eval(Container.DataItem,"Name") %>                   </td>              </tr>          </ItemTemplate>          <FooterTemplate>              </table>          </FooterTemplate>      </asp:Repeater>  </div>  <div>      <a>第三个repeater显示的数据:</a>      <asp:Repeater ID="Repeater3" runat="server">          <HeaderTemplate>              <table>                  <th>                      Key                  </th>                  <th>                      Value                  </th>          </HeaderTemplate>          <ItemTemplate>              <tr>                  <td>                      <%#Eval("key") %>                  </td>                  <td>                      <%#Eval("value") %>                  </td>              </tr>          </ItemTemplate>          <FooterTemplate>              </table>          </FooterTemplate>      </asp:Repeater>  </div> 
       由于"2. 后台主要代码"指定了repeater的数据源,在"3. 前台主要代码"  在<ItemTemplate>中,如果数据源没有字段名,通过 <%#Container.DataItem %> 来显示数据,如第一个Repeater所示;如果数据源存在字段名通过<%#Eval("字段名")%>或者<%#DataBinder.Eval(Container.DataItem,"字段名")%>来显示数据。使用以上来显示一般数据就可以,如果数据是需要修改的,则使用Bind("字段名").
4.其它有用小结:
Eval和Bind区别:Eval是只读方法,将其参数中字段的值作为字符串返回;Bind则可读可写,可以检索数据绑定控件的值并将任何修改提回会数据库。
Container.DataItem和DataBinder:
DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写

Container则是ASP.NET页面编译器在数据绑定事件处理程序内部声明的局部变量,其类型是可以进行数据绑定的控件的数据容器类型(如在Repeater内部的数据绑定容器叫RepeaterItem),在这些容器类中基本都有DataItem属性,因此你可以写Container.DataItem,这个属性返回的是你正在被绑定的数据源中的那个数据项。如果你的数据源是DataTable,则这个数据项的类型实际是DataRowView。

关于Repeater中DataSource和数据显示的总结就分享到这里了,希望以上内容可以对大家有一定的参考价值,如果喜欢本篇文章,不妨把它分享出去让更多的人看到。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×