日期:2014-05-17  浏览次数:20446 次

dropdownlist绑定数据
<asp:TemplateField HeaderText="Discrepancy">
  <ItemTemplate >
  <asp:DropDownList ID="Discrepancy" runat="server>
  <asp:ListItem>Select...</asp:ListItem>
  <asp:ListItem>Pay Increase</asp:ListItem>
  <asp:ListItem>Completed apprenticeship</asp:ListItem>
  <asp:ListItem>Annual leave in advance</asp:ListItem>
  </asp:DropDownList>
  </ItemTemplate>
 </asp:TemplateField>

这是我的dropdownlist,在一个gridview中,当然这个gridview是分页的,在用户点击翻页以后,这个dropdownlist里面的值在回来的时候就又回到了原来的 default的值。也就是说,用户选择项丢失了。我如何能保住这个项那?
我其他的列的内容是用 Container.DateItem ("") 保存的,这里又像问一下,这个有几个不同的词
<%# Container.DataItem("列名")%>
<%#Eval("列名") %>
<%# Bind("列名") %>
这3个 都各有什么不同啊?

------解决方案--------------------
C# code

1。Eval和Bind的区别 
绑定表达式 
<%# Eval("字段名") %> 
<%# Bind("字段名") %>


区别 1。eval是只读数据,bind是可更新的.


2.当对次表达式操作时候,必须用Eval 如<%# Eval("字段名").ToString().Trim() %>

2.若GridView中绑定列里面 设置 内容格式 DataFormateString = ,则 必须把 属性 HtmlCode 设置为false,否则无法起作用;

Eval 单向绑定:数据是只读的
Bind 双向绑定:数据可以更改,并返回服务器端,服务器可以处理更改后的数据,如存入数据库.
 


----<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%> //----2006年10月27日
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%>//----2006年10月27日 8:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%>//----2006-10-27 8:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%>//----10月27日


-<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%>//----Fri, 27 Oct 2006 08:31:44GMT
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%>//----8:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%>//----2006年10月27日 0:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","")%>//----2006年10月