2014-06-12 63 views
0

美好的一天!在列表视图中我有一个文本字段。用户输入数据并点击(链接按钮)回发域丢失数据或显示默认数据(如果有)。当文本框不在列表视图中时,没有这样的问题。 ViewState为页面启用。代码 部分回发后TextBox丢失数据(listview)

<asp:ListView ID="mylist" runat="server" DataSourceID="listsource" OnItemDataBound="mylist_ItemDataBound" OnItemCommand="mylist_ItemCommand"> 
    <ItemTemplate> 
     <div style=" display:inline-block;"> 
      <div style="float:left;"> 
       <img src="<%=ResolveUrl("files") %>/<%#Eval("img") %>" alt='<%#Eval("img") %>' class="primage" /> 
       <div class="div1" style="width:240px;"> <%#Eval("sample") %></div></div> 
       <div class="card"> 
       <asp:TextBox ID="countbox" runat="server" CssClass=""></asp:TextBox> 
       <asp:LinkButton ID="add" runat="server" CssClass="add" CommandName="add">some text</asp:LinkButton> 
      </div> 
     </div> 
    </ItemTemplate> 
</asp:ListView> 
+1

显示的代码...... –

回答

0

在服务器端,如果你不这样做,发布任何价值将原有的或默认值覆盖你应该问,如果页回

If(!Page.IsPostBack) 
{ 
    MyListView.DataBind(); 
} 

1

有了回传,您的数据似乎正在通过数据绑定重新生成。你能避免使用if块检查页面下,结合数值数据丢失是不是回发

if(!Page.IsPostBack) 
{ 
    //bind my lovely data 
} 
else 
{ 
    // do nothing 
    // dont bind new data with postback because I just pressed a button 
} 

另一种解决办法可能是使用AJAX或者异步回用的UpdatePanel