2009年3月18日星期三

使用ListView + ObjectDataSource更新数据

这里面最关键的问题在于,当Update时,如何获取到修改行的TextBox的值。经探索,方法如下:
  1. 为ObjectDataSource指定UpdateMethod,并且设置UpdateParameters
  2. UpdateParameters只需要使用<Parameter即可
  3. 为ObjectDataSource创建OnUpdating事件
OnUpdating要做的工作如下:
protected void ObjectDataSource1_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
object o = ListView1.Items[ListView1.EditIndex].FindControl("txtQty");
if (o.GetType() == typeof(TextBox))
{
e.InputParameters[0] = ((TextBox)o).Text;
}

}
下面是ListView中的EditItemTemplate内容:
<EditItemTemplate>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtQty" runat="server"></asp:TextBox>
</td>
<td>
<asp:LinkButton ID="LinkButton1" CommandName="Update" runat="server">Update</asp:LinkButton>
<asp:LinkButton CommandName="Cancel" ID="LinkButton2" runat="server">Cancel</asp:LinkButton>
</td>
</tr>
</EditItemTemplate>

没有评论:

发表评论