aspx文件<asp:GridView ID="GridView1"  OnRowDataBound="GridView1_RowDataBound" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="NO." />
                <asp:BoundField DataField="jobTitle" HeaderText="Job Title" />
               
                <asp:TemplateField HeaderText="company name">
                    <ItemTemplate>
                        <%#Eval("companyName")%>
                         <!--2GridView-->
               <asp:GridView ID="gv_company_list" OnRowDataBound="gv_company_list_RowDataBound"   AutoGenerateColumns=false runat="server">          
                 <Columns>
                 <asp:BoundField DataField="userNo" HeaderText="No."  Visible="false"/>
                 <asp:TemplateField HeaderText="Company Name">
                    <ItemTemplate>
                        <a href="../jobs/company_detail.aspx?companyID=<%#Eval("userNo")%>" target="_blank" ><%#Eval("corporatioName")%></a>
                        <!--3GridView-->
                      <asp:GridView ID="gv_job_list"  AutoGenerateColumns=false runat=server>
                           <Columns>
                             <asp:TemplateField>
                             <ItemTemplate> 
                              <%#Eval("customizeJobName")%>
                             </ItemTemplate>
                             </asp:TemplateField>                    
                           </Columns>
                        </asp:GridView>
                       <!--end 3 GridView-->
                    </ItemTemplate>
                </asp:TemplateField>
                  
                 </Columns>
                </asp:GridView>
              <!--end 2 GridView-->                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="source" HeaderText="source" />
                <asp:TemplateField HeaderText="Is Process">
                    <ItemTemplate>
                        <%#Eval("isProcess").ToString()=="0"?"NO":"YES"%>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Operation">
                    <ItemTemplate>
                                                
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
cs   //GridView1_RowDataBound
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowType != DataControlRowType.Header && e.Row.RowType != DataControlRowType.Footer)
            {
                GridView gv = (GridView)e.Row.FindControl("gv_company_list");
                string kw = DataBinder.Eval(e.Row.DataItem, "companyName").ToString();
               gv.DataSource = rbiB.listCompany();
               gv.DataBind();
                            }
        }
        protected void gv_company_list_RowDataBound(object sender, GridViewRowEventArgs e)
        {             if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowType != DataControlRowType.Header && e.Row.RowType != DataControlRowType.Footer)
            {
                GridView gv = (GridView)e.Row.FindControl("gv_job_list");
                string userNo = DataBinder.Eval(e.Row.DataItem, "userNo").ToString();
                 gv.DataSource = rjB.FindRecruitJobByUserNoTitle(userNo, jobTitle);
                 gv.DataBind();            }
        }
 怎样在 gv_company_list_RowDataBound 里得到第一层jobTitle的值啊?

解决方案 »

  1.   

    1. 建议楼主更换绑定方式,请参考
    http://blog.csdn.net/amandag/archive/2008/06/11/2537079.aspx
      

  2.   

    try:        protected void gv_company_list_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                 if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    GridView gv_company = e.Row.NamingContainer as GridView;
                    if(gv_company != null)
                    {
                        GridViewRow gvr = gv_company.NamingContainer as GridViewRow;
                        if(gvr != null)
                        {
                             string jobTitle = gvr.Cells[1].Text;
                             // to do...
                        }
                    }
                    GridView gv = (GridView)e.Row.FindControl("gv_job_list");
                    string userNo = DataBinder.Eval(e.Row.DataItem, "userNo").ToString();
                     gv.DataSource = rjB.FindRecruitJobByUserNoTitle(userNo, jobTitle);
                     gv.DataBind();            }
            }
      

  3.   

     protected void gv_company_list_RowDataBound(object sender, GridViewRowEventArgs e)
            {             if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowType != DataControlRowType.Header && e.Row.RowType != DataControlRowType.Footer)
                {               GridViewRow parentRow = (sender as GridView).Parent as GridViewRow;
                   // ...            }
            }思路是这样,代码我没试过.. 
      

  4.   

        protected void   gv_company_list_RowDataBound(object sender, GridViewRowEventArgs e)
        {
                GridView gv_company_list;   
                if (e.Row.RowType == DataControlRowType.DataRow)   
                {   
                    gv_company_list = e.Row.FindControl("gv_company_list") as GridView;   
                    if (gv_company_list != null)   
                    {   
                        string jobTitle= DataBinder.Eval((gv_company_list.NamingContainer as GridViewRow).DataItem, "jobTitle").ToString();
                        //你的代码                    
                    }   
                }   
        }