2010-09-16 32 views
0

我有GridView绑定到一些列表。在布局我创建下面的模板领域:使用TemplateField绑定GridView到泛型集合

<asp:TemplateField HeaderText="Phrase"> 
    <ItemTemplate> 
     <asp:TextBox ID="phraseTextBox" runat="server" Text='<%# Bind("Phrase") %>'/> 
    </ItemTemplate> 
</asp:TemplateField> 

但改变任何文本框的列“短语”的内容后,我的名单并不反映变化。

我做错了什么?:)

回答

0

ItemTemplate将仅用于显示/查看目的。您需要使用EditItemTemplate来指定在编辑行时UI的使用方式。不仅如此,你还必须添加按钮/链接到行来将其推入编辑模式。

阅读this来自MSDN的文章,解释了如何使用网格视图编辑数据。检查示例“编辑界面中添加验证控件”一节以使用EditItemTemplate。

+0

是的,但我需要的行编辑没有明确将其切换。我们可以隐式地切换模式,例如用户使我的文本框变得专注了吗? – DixonD 2010-09-16 09:38:31

+0

@DixonD,不幸的是GridView并不适合这种功能。它允许一次编辑一行,因此它需要行级别的事件才能进入编辑模式,然后将保存/取消按钮退出到退出模式。 – VinayC 2010-09-16 09:56:06

+0

也许你可以给一些建议,如果GridView不足以做出这样的功能呢? – DixonD 2010-09-16 11:10:40

-1

在这一行

<asp:TextBox ID="phraseTextBox" runat="server" Text='<%# Bind("Phrase") %>'/> 

我会用eval,并且不使用绑定

<asp:TextBox ID="phraseTextBox" runat="server" Text='<%# Eval("Phrase") %>'/> 

问候

+0

我认为应该清楚我需要完全双向绑定。 – DixonD 2010-09-17 08:45:32