查了好多
还是没有解决源:
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
            BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" 
            CellPadding="3" GridLines="Horizontal" 
    onselectedindexchanged="GridView2_SelectedIndexChanged1" DataKeyNames="cys_yyzz,cys_zzjg,cys_swdjh,cys_khxkzh,cys_dlysxk,cys_frxm,cys_frsfz">后台:
 protected void GridView2_SelectedIndexChanged1(object sender, EventArgs e)
        {
            string a = GridView2.SelectedRow.Cells[1].Text.ToString();
            string b = GridView2.SelectedRow.Cells[2].Text.ToString();
            string c = GridView2.SelectedRow.Cells[3].Text.ToString();
            //string d = GridView2.SelectedRow.Cells[4].Text.ToString();
            string d = GridView2.DataKeys[e.RowIndex]["cys_yyzz"].ToString();
            //string e1 = GridView2.SelectedRow.Cells[5].Text.ToString();
            string e1 = GridView2.DataKeys[e.RowIndex]["cys_zzjg"].ToString();
            //string f = GridView2.SelectedRow.Cells[6].Text.ToString();
            string f = GridView2.DataKeys[e.RowIndex]["cys_swdjh"].ToString();
            //string g = GridView2.SelectedRow.Cells[7].Text.ToString();
            string g = GridView2.DataKeys[e.RowIndex]["cys_khxkzh"].ToString();
            //string h = GridView2.SelectedRow.Cells[8].Text.ToString();
            string h = GridView2.DataKeys[e.RowIndex]["cys_dlysxk"].ToString();
            //string i = GridView2.SelectedRow.Cells[9].Text.ToString();
            string i = GridView2.DataKeys[e.RowIndex]["cys_frxm"].ToString();
            //string j = GridView2.SelectedRow.Cells[10].Text.ToString();
            string j = GridView2.DataKeys[e.RowIndex]["cys_frsfz"].ToString();
            string k = GridView2.SelectedRow.Cells[11].Text.ToString();
            string l = GridView2.SelectedRow.Cells[12].Text.ToString();
            string m = GridView2.SelectedRow.Cells[13].Text.ToString();d,e1,f,g,h,i,j始终报不包含RowIndex的定义求达人指教Gridview取隐藏列值方法

解决方案 »

  1.   

    int index = Gridview1.SelectedIndex;
    string e1 = GridView2.DataKeys[index]["cys_zzjg"].ToString();
      

  2.   


    <dxwgv:ASPxGridView ID="agvTestItemBill" runat="server" Width="100%" KeyFieldName="TESTSTANDARDID"
                ClientInstanceName="grid" AutoGenerateColumns="False" 
                DataSourceID="ObjectDataSource1" 
                oncustomcallback="agvTestItemBill_CustomCallback">
                <SettingsPager PageSize="10"></SettingsPager>
                <Columns>
                    <dxwgv:GridViewDataTextColumn FieldName="TESTSTANDARDID" Visible="false" VisibleIndex="0">
                    </dxwgv:GridViewDataTextColumn>
     </Columns>
                <ClientSideEvents CustomButtonClick="function(s,e){GridCustomButtonClick(s,e); }" />
            </dxwgv:ASPxGridView>
                    <dxwgv:GridViewDataTextColumn FieldName="STANDARDSOURCEURL" Visible="false" VisibleIndex="1">
                    </dxwgv:GridViewDataTextColumn>这个第三方控件。
    去这两个隐藏列的值在前台JS里面就行,这是两个参数的,一个参数的就是那个res就是你想要的那个值。function GridCustomButtonClick(s,e)
    {
        gridvisibleIndex = e.visibleIndex;
        grid.GetRowValues(gridvisibleIndex ,'TESTSTANDARDID;STANDARDOBJECTTYPE',GridViewValuesCallbackDetail);        
    }function GridViewValuesCallbackDetail(res){
        var id = res[0];
        var S_type  = res[1];
    }
      

  3.   

    后台可以使用DataBinder.Eval方法
    或者不要用visible属性隐藏列:
     <style type="text/css">
            .hidden { display:none;}
     </style>
    <asp:BoundColumn DataField="OtherAppAmt">
                        <FooterStyle  CssClass="hidden"/> 
                        <HeaderStyle CssClass="hidden"/>
                        <ItemStyle CssClass="hidden" />
                    </asp:BoundColumn>
      

  4.   

    http://cfeng518.blog.163.com/blog/static/17467732200752321728181/
      

  5.   

    在gridview中SelectedIndexChanged事件里,根本就没有e.rowindex属性,你根本就取不出来.你怎么取?
    rowindex是在更新或者编辑里才用到的-----------------------(object sender, GridViewUpdateEventArgs e)
    {
       才会取到编辑行e.rowindex
    }int index = Gridview1.SelectedIndex;//取得编辑行string e1 = GridView2.DataKeys[index]["cys_zzjg"].ToString();
      

  6.   

     int index = this.GridView2.SelectedIndex;            string a = GridView2.SelectedRow.Cells[1].Text.ToString();
                string b = GridView2.SelectedRow.Cells[2].Text.ToString();
                string c = GridView2.SelectedRow.Cells[3].Text.ToString();
                string d = GridView2.DataKeys[index]["cys_yyzz"].ToString();
                string e1 = GridView2.DataKeys[index]["cys_zzjg"].ToString();
                string f = GridView2.DataKeys[index]["cys_swdjh"].ToString();
                string g = GridView2.DataKeys[index]["cys_khxkzh"].ToString();
                string h = GridView2.DataKeys[index]["cys_dlysxk"].ToString();
                string i = GridView2.DataKeys[index]["cys_frxm"].ToString();
                string j = GridView2.DataKeys[index]["cys_frsfz"].ToString();
                string k = GridView2.SelectedRow.Cells[11].Text.ToString();
                string l = GridView2.DataKeys[index]["cys_xkz"].ToString();这行开始报:未将对象引用设置到对象的实例。的错误
                string m = GridView2.DataKeys[index]["cys_khxxdz"].ToString();
                string n = GridView2.DataKeys[index]["cys_zltxrz"].ToString();
                string o = GridView2.DataKeys[index]["cys_cym"].ToString();
                string p = GridView2.DataKeys[index]["cys_sf"].ToString();
                string q = GridView2.DataKeys[index]["cys_ds"].ToString();
                string r = GridView2.DataKeys[index]["cys_zgdw"].ToString();
                string s = GridView2.DataKeys[index]["cys_yhzh"].ToString();
                string t = GridView2.SelectedRow.Cells[20].Text.ToString();
                string u = GridView2.DataKeys[index]["cys_lxrdh"].ToString();
                string v = GridView2.DataKeys[index]["cys_fsjg"].ToString();
                string w = GridView2.DataKeys[index]["cys_hylb"].ToString();
                string x = GridView2.SelectedRow.Cells[24].Text.ToString();
                string y = GridView2.DataKeys[index]["cys_jbrxm"].ToString();
                string z = GridView2.DataKeys[index]["cys_jbrdh"].ToString();
                string a1 = GridView2.DataKeys[index]["cys_jbrdzyx"].ToString();
                string a2 = GridView2.SelectedRow.Cells[28].Text.ToString();
                string a3 = GridView2.DataKeys[index]["cys_lxrxm"].ToString();
                string a4 = GridView2.DataKeys[index]["cys_zyyw"].ToString();
                string a5 = GridView2.SelectedRow.Cells[31].Text.ToString();
                string a6 = GridView2.DataKeys[index]["cys_tqjl"].ToString();
                string a7 = GridView2.DataKeys[index]["cys_ywwl"].ToString();
                string a8 = GridView2.SelectedRow.Cells[34].Text.ToString();
                string a9 = GridView2.DataKeys[index]["cys_czh"].ToString();
      

  7.   

    protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
      {
      if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
      {
      e.Row.Cells[1].Visible = false;
      e.Row.Cells[2].Visible = false;
      }
      }
    取值:
    GridView.Rows [i].Cells [1].Text  或
    <asp:HiddenField ID="Hd_SH" Value='<%#DataBinder.Eval(Container.DataItem,"BH")%>' runat="server" />

      <asp:BoundField DataField="BH" HeaderText="">
    <ControlStyle CssClass="hidden" />
    <FooterStyle CssClass="hidden"/>
    <HeaderStyle CssClass="hidden"/>
    <ItemStyle CssClass="hidden"/>
    </asp:BoundField>
    .hidden
    {
    display:none;
    }
      

  8.   

    protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
      {
      if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
      {
      e.Row.Cells[1].Visible = false;
      e.Row.Cells[2].Visible = false;
      }
      }
    取值:
    GridView.Rows [i].Cells [1].Text  或
    <asp:HiddenField ID="Hd_SH" Value='<%#DataBinder.Eval(Container.DataItem,"BH")%>' runat="server" />

      <asp:BoundField DataField="BH" HeaderText="">
    <ControlStyle CssClass="hidden" />
    <FooterStyle CssClass="hidden"/>
    <HeaderStyle CssClass="hidden"/>
    <ItemStyle CssClass="hidden"/>
    </asp:BoundField>
    .hidden
    {
    display:none;
    }
      

  9.   

    不要用visible属性隐藏列:
     <style type="text/css">
      .hidden { display:none;}
     </style>
      

  10.   

     前台:
    DataKeyNames="cys_yyzz,cys_zzjg,cys_swdjh,cys_khxkzh,cys_dlysxk,cys_frxm,cys_frsfz">
    后台
    string l = GridView2.DataKeys[index]["cys_xkz"].ToString();
    DataKeys[index][string].ToString(),  string是要与DataKeyNames里面的对应的,你没有的话,是去不出来的.
    你已经绑定的字段,你就用 string a = GridView2.SelectedRow.Cells[1].Text.ToString();
    你隐藏的列,才用string l = GridView2.DataKeys[index]["cys_xkz"].ToString();
    不是每行都用DataKeyS[index]
      

  11.   


    没有隐藏的我用的是            string a = GridView2.SelectedRow.Cells[1].Text.ToString();
                string b = GridView2.SelectedRow.Cells[2].Text.ToString();
                string c = GridView2.SelectedRow.Cells[3].Text.ToString();隐藏的我用的是:
    string d = GridView2.DataKeys[index]["cys_yyzz"].ToString();
                string e1 = GridView2.DataKeys[index]["cys_zzjg"].ToString();
                string f = GridView2.DataKeys[index]["cys_swdjh"].ToString();
                string g = GridView2.DataKeys[index]["cys_khxkzh"].ToString();
                string h = GridView2.DataKeys[index]["cys_dlysxk"].ToString();
                string i = GridView2.DataKeys[index]["cys_frxm"].ToString();
                string j = GridView2.DataKeys[index]["cys_frsfz"].ToString();