0

グリッドビューで最初の列を非表示にしました。:

<asp:GridView ID="tableResults" runat="server" DataMember="Table"
    EnableModelValidation="True" CssClass = "GridViewStyle"
    AutoGenerateColumns="False" OnRowDataBound = "tableResults_DataBound"
    OnRowDeleting = "tableResults_RowDeleting" AutoGenerateDeleteButton="True">                     
   <HeaderStyle CssClass = "GridViewHeaderStyle" />
   <RowStyle CssClass = "GridViewRowStyle"/>    
   <Columns>                   
    <asp:BoundField DataField="I_ID" Visible="false" HeaderText=""/>
    <asp:BoundField DataField="I_MAJOR" HeaderText="Major"/>
    <asp:BoundField DataField="I_MINOR" HeaderText="Minor"/>
    <asp:BoundField DataField="I_RELEASE" HeaderText="Release"/>
    <asp:BoundField DataField="I_BUILD" HeaderText="Build"/>
   </Columns>           
</asp:GridView>

列 1 から値を取得すると、null になります。

TableCell rowData = tableResults.Rows[e.RowIndex].Cells[1];
oracleCom.CommandText = "Delete From TBL_VERSIONS Where i_id = " + rowData.Text;

columnvisible = trueを実行した場合、値を取得できます。ただし、この列は非表示にする必要があります。

4

2 に答える 2

1

DataKeyNames を I_ID として設定

<asp:GridView ID="tableResults" runat="server" DataMember="Table"
    EnableModelValidation="True" CssClass = "GridViewStyle"
    AutoGenerateColumns="False" OnRowDataBound = "tableResults_DataBound"
    OnRowDeleting = "tableResults_RowDeleting" AutoGenerateDeleteButton="True"
    DataKeyNames = "I_ID" >

その後、以下のようにIDを取得できます

 int idVal= (int)tableResults.DataKeys[e.RowIndex].Value;

または、グリッドビューの行データ バインド イベントでセルを非表示に設定し、DataField="I_ID" の非表示プロパティを削除できます。

protected void tableResults_RowDataBound(object sender, GridViewRowEventArgs e)
{
   e.Row.Cells[1].Visible = false;
}
于 2012-11-16T04:17:09.653 に答える
0

1 つの簡単な方法:

列を表示したままにする

columnName.visible = true

ただし、HTMLで非表示にします

style="visibility:hidden;"

また

style="display:none;"

つまり好き

<asp:BoundField DataField="I_ID" Visible="false" style="visibility:hidden;" HeaderText=""/>

このようにして、それを隠したままにして、その値にアクセスすることもできます.

于 2012-11-16T04:47:18.090 に答える