1
我有每个供应商的id int值的供应商表。我试图编辑ListView中的这个表的列。如何知道OnItemUpdated上ListView项的id?
我试图访问e arg,但它没有任何数据在我试图更新的行的id?
我有每个供应商的id int值的供应商表。我试图编辑ListView中的这个表的列。如何知道OnItemUpdated上ListView项的id?
我试图访问e arg,但它没有任何数据在我试图更新的行的id?
使用sender
代替e
protected void ListView1_ItemUpdated(object sender, ListViewUpdatedEventArgs e)
{
if ((sender as ListView) != null)
{
ListView l = (ListView)sender;
l.SelectedIndex;
l.etc..............
DataKey key = l.SelectedDataKey;
object k = key.Values["foo"];
}
}
您需要设置ListView.DataKeyNames包含的UNIQUEID
<asp:ListView runat="server" ID="LvSample" DataKeyNames="SupplierId"/>
属性名称,则dataKey将在更新可用事件。值得一提的是,您可能希望使用ItemUpdating事件而不是ItemUpdated事件,因为在更新发生之前会发生这种情况。
protected void Page_Load(object sender, EventArgs e)
{
LvSample.ItemUpdating += new EventHandler<ListViewUpdateEventArgs>(LvSample_ItemUpdating);
LvSample.ItemUpdated += new EventHandler<ListViewUpdatedEventArgs>(LvSample_ItemUpdated);
}
void LvSample_ItemUpdated(object sender, ListViewUpdatedEventArgs e)
{
var supplierId = e.NewValues["SupplierId"];
}
void LvSample_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
var supplierId = e.Keys["SupplierId"];
}
谢谢@Caspar Kleijne。我如何获得我编辑的当前项目的id sql值? – eugeneK 2010-09-19 09:23:29
@Caspar Kleijne,我在Response.Write(((ListView)sender).SelectedDataKey.Value.ToString())上得到null对象异常。我确实加入了ListView DataKeyNames ='id' – eugeneK 2010-09-19 09:29:16
是你的listview中的id吗? (除了它宣布为datakeyname?) – 2010-09-19 09:30:32