这里面最关键的问题在于,当Update时,如何获取到修改行的TextBox的值。经探索,方法如下:
- 为ObjectDataSource指定UpdateMethod,并且设置UpdateParameters
- UpdateParameters只需要使用<Parameter即可
- 为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>
没有评论:
发表评论