0
<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 に行を入れてみましたが、それでもすぐに消えます

4

0 に答える 0