首页 新闻 会员 周边

ASP.NET中的Eval()问题

0
悬赏园豆:15 [已解决问题] 解决于 2011-04-07 09:14

                <ItemTemplate>                    

      <tr>                     <td><span><%#Eval("str4") %></span></td>                                        </tr>                

      </ItemTemplate>

    以上是Repeater空间中一部分

  下面是后天cs代码,在Page_Load函数中的

  protected Dictionary<string, string> dic = new Dictionary<string, string>();

          protected void Page_Load(object sender, EventArgs e)        {

            if (!IsPostBack)            {

                dic.Add("str1", "this is str1");                

      dic.Add("str2", "this is str2");                dic.Add("str3", "this is str3");                        dic.Add("str4", "this is str4");                dic.Add("str5", "this is str5");                      dic.Add("str6", "this is str6");               

       Repeater1.DataSource = dic;

                Page.DataBind();            }

  }

  但是我在前台调用Eval()函数出错了。does not contain a property with the name 'str4'

  是不是我前台使用绑定表达式的时候,str4这个key值不在的?还是什么问题,求高手解答,谢谢

RyanZhu的主页 RyanZhu | 初学一级 | 园豆:155
提问于:2011-04-06 23:52
< >
分享
最佳答案
0

绑定方式不对,Dictionary 应该使用><%#Eval("key")%>和<%#Eval("value")%>绑定.

例子:

 <asp:Repeater ID="rptDemo" runat="server">
     <HeaderTemplate>
        <table>
          <tr>
            <td>demo</td>
          </tr>
     </HeaderTemplate>
     <ItemTemplate>
           <tr>
            <td><%#Eval("key")%>和<%#Eval("value")%>
</td>
          </tr>
     </ItemTemplate>
     <FooterTemplate>
       </table>
     </FooterTemplate>
    </asp:Repeater>

收获园豆:8
DYStudio | 菜鸟二级 |园豆:223 | 2011-04-07 09:08
谢谢,解决了。不过还是有点疑问,dictionary对象只有keys这个属性,key是不是应该指创建时候的key参数?还有那个在使用dataset强类型加objectdatasource的时候,绑定用的是数据库里每个字段的值,那些值在dataset里成了属性。那可不可以这么说,绑定只能绑定到属性上面呢?
RyanZhu | 园豆:155 (初学一级) | 2011-04-07 09:19
其他回答(2)
0

Dictionary<key,value>,

Eval需要绑定它的key,而不是你添加的数据!如果是一张表则比较好理解,它绑定的是表中的列,而非记录!

所以<%#Eval("str4") %> 应改为 <%#Eval("Key") %>

收获园豆:5
Chenkun | 园豆:806 (小虾三级) | 2011-04-07 09:09
谢谢,解决了。不过还是有点疑问,dictionary对象只有keys这个属性,key是不是应该指创建时候的key参数?还有那个在使用dataset强类型加objectdatasource的时候,绑定用的是数据库里每个字段的值,那些值在dataset里成了属性。那可不可以这么说,绑定只能绑定到属性上面呢?
支持(0) 反对(0) RyanZhu | 园豆:155 (初学一级) | 2011-04-07 09:19
理解正确!+100分
支持(0) 反对(0) Chenkun | 园豆:806 (小虾三级) | 2011-04-07 12:08
哈!了了~~谢谢
支持(0) 反对(0) RyanZhu | 园豆:155 (初学一级) | 2011-04-07 21:48
0

Dictionary是键值对,绑定的时候也键值对。

收获园豆:2
奋斗张 | 园豆:514 (小虾三级) | 2011-04-07 09:10
谢谢,解决了。不过还是有点疑问,dictionary对象只有keys这个属性,key是不是应该指创建时候的key参数?还有那个在使用dataset强类型加objectdatasource的时候,绑定用的是数据库里每个字段的值,那些值在dataset里成了属性。那可不可以这么说,绑定只能绑定到属性上面呢?
支持(0) 反对(0) RyanZhu | 园豆:155 (初学一级) | 2011-04-07 09:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册