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