<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="500px" AutoGenerateRows="False"
DataKeyNames="strPositionId,nFolderId,tmVaRPosition,fP18VaR" DataSourceID="ODSManualPosVaR"
OnItemInserted="DetailsView1_ItemInserted" OnItemInserting="DetailsView1_ItemInserting" DefaultMode="Insert"
SkinID="detailsviewSkin" EnableModelValidation="True" OnDataBound="DetailsView1_DataBound">
<HeaderStyle Width="200px" />
<FieldHeaderStyle Width="200px" />
<Fields>
<asp:BoundField DataField="strPositionId" HeaderText="Id" ItemStyle-Width="200" SortExpression="strPositionId" runat="server"/>
</Fields>
</asp:DetailsView>
ItemInserted メソッド内でその asp:BoundField の値を取得したいと思います。
protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
var getBoundFieldValue = ?
DetailsView1.DataBind();
}
これが正しい方法だと思います:
DetailsView1.Rows[0].Cells[1].Text;
しかし、値は消えます (そのため、空の文字列になります)。Page_Load に行を入れてみましたが、それでもすぐに消えます