在gridview中显示gridview

时间:2011-05-24 06:56:36

标签: asp.net

我有一个关于招聘系统的项目。在这个项目中,我有gridview,其中包含空缺职位,公司名称,部门名称等详细信息。现在我想要的是,空缺职位应该有超链接,当用户点击职位空缺时,应该显示该职位空缺的标准。另一个网格没有刷新该页面。这意味着我必须在另一个内部维护一个网格,但我不知道如何实现这一目标。 任何人都可以指导我吗???

2 个答案:

答案 0 :(得分:0)

亲爱的朋友我在数据列表中使用了gridview,所以你可以使用相同的方式 gridview内的网格视图。这里是代码示例

.aspx代码

  <asp:DataList ID="dl_College" runat="server" OnItemCommand="dl_College_ItemCommand"
               OnItemDataBound="dl_College_ItemDataBound">
               <ItemTemplate>
                   <fieldset>


                       <asp:GridView ID="grdCorse" runat="server" AutoGenerateColumns="false" CssClass="text12_d"
                           Width="100%">
                           <HeaderStyle BackColor="#244e7e" ForeColor="#f7f7f7" />
                           <RowStyle CssClass="gridview-row" />
                           <Columns>
                               <asp:TemplateField HeaderText="Stream Name">
                                   <HeaderStyle CssClass="grdsize" />
                                   <ItemStyle Width="42%" />
                                   <ItemTemplate>
                                       <span class="text12_d">
                                           <%#Eval("StreamName")%>
                                       </span>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Seats">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" Width="10%" />
                                   <ItemTemplate>
                                       <%#Eval("StreamSeats")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Duration">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" Width="10%" />
                                   <ItemTemplate>
                                       <%#Eval("StreamDuration")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Fee">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" Width="15%" />
                                   <ItemTemplate>
                                       <asp:Label ID="lblStreamFee" runat="server" Text='<%#Eval("StreamFees")%>' Visible="false"></asp:Label>
                                       <asp:ImageButton ID="imgLock" runat="server" PostBackUrl='<%# String.Format("{0}{1}","Login.aspx?ClgId=" , Eval("CollegeId")) %>'
                                           CausesValidation="false" ImageUrl="~/images/Lock.png" Width="30" Height="20" />
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Mode">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" Width="10%" />
                                   <ItemTemplate>
                                       <%#Eval("StreamMode")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                           </Columns>
                       </asp:GridView>
                   </fieldset>
                   <br />
                   <asp:Panel ID="pnlCollegeRank" runat="server">
                       <fieldset>
                           <legend class="Legend_Header"><strong>College Rank</strong></legend>
                           <asp:Panel ID="pnlImage" runat="server" Visible="false">
                               <table width="100%">
                                   <tr>
                                       <td style="width: 100%;" class="Main_StripCollegeRank">
                                           To check college rank, please login
                                       </td>
                                       <td style="float: right; background-color: #3b5998;">
                                           <asp:ImageButton ID="imgLock" PostBackUrl='<%# String.Format("{0}{1}","Login.aspx?Collegeid=" , Eval("CollegeId")) %>'
                                               CausesValidation="false" ImageUrl="~/images/Lock.png" runat="server" />
                                       </td>
                                   </tr>
                               </table>
                           </asp:Panel>
                           <asp:Panel ID="pnlRank" runat="server" Visible="false">
                               <span style="float: left; padding-left: 6px; width: auto">
                                   <asp:GridView ID="grdCollegeRank" runat="server" AutoGenerateColumns="false" CssClass="text12_d"
                                       Width="">
                                       <HeaderStyle ForeColor="White" />
                                       <RowStyle CssClass="gridview-row" />
                                       <AlternatingRowStyle BackColor="#fffbfd" />
                                       <Columns>
                                           <asp:TemplateField HeaderText="">
                                               <HeaderTemplate>
                                                   <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                                       <tr style="background-color: #244e7e">
                                                           <td style="width: 100%; background-color: #244e7e; font-size: 13px; font-weight: bold;
                                                               color: white; padding-left: 3px" colspan="2" align="left">
                                                               College Rank in
                                                               <asp:Label ID="lblYear" runat="server" Text="2011" ForeColor="white" Font-Size="13px"
                                                                   Font-Bold="true"></asp:Label>
                                                           </td>
                                                       </tr>
                                                       <tr>
                                                           <td style="width: auto; color: #244e7e; text-align: left;" class="grid_HeaderRank">
                                                               Source
                                                           </td>
                                                           <td style="width: auto; color: #244e7e; text-align: right;" class="grid_HeaderRank">
                                                               Rank
                                                           </td>
                                                       </tr>
                                                   </table>
                                               </HeaderTemplate>
                                               <ItemTemplate>
                                                   <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                                       <tr>
                                                           <td style="width: auto;" align="left" class="text12_d">
                                                               <asp:Label ID="lblSource" runat="server" Text='<%#Eval("SourceName")%>'></asp:Label>
                                                           </td>
                                                           <td style="width: auto; text-align: right; padding-right: 16px" class="text12_d">
                                                               <asp:Label ID="lblRank" runat="server" Text='<%#Eval("OverallRank")%>'></asp:Label>
                                                           </td>
                                                       </tr>
                                                   </table>
                                               </ItemTemplate>
                                           </asp:TemplateField>
                                       </Columns>
                                   </asp:GridView>
                               </span><span style="float: left; padding-left: 6px; width: auto">
                                   <asp:GridView ID="grdCollegeRank1" runat="server" AutoGenerateColumns="false" CssClass="text12_d"
                                       Width="">
                                       <HeaderStyle ForeColor="White" />
                                       <RowStyle CssClass="gridview-row" />
                                       <AlternatingRowStyle BackColor="#fffbfd" />
                                       <Columns>
                                           <asp:TemplateField HeaderText="">
                                               <HeaderTemplate>
                                                   <table width="100%">
                                                       <tr style="background-color: #244e7e">
                                                           <td style="width: 100%; background-color: #244e7e; font-size: 13px; font-weight: bold;
                                                               color: white; padding-left: 3px" colspan="2" align="left">
                                                               College Rank in
                                                               <asp:Label ID="lblYear" runat="server" Text="2010" ForeColor="white" Font-Size="13px"
                                                                   Font-Bold="true"></asp:Label>
                                                           </td>
                                                       </tr>
                                                       <tr>
                                                           <td style="width: auto; color: #244e7e; text-align: left;" class="grid_HeaderRank">
                                                               Source
                                                           </td>
                                                           <td style="width: auto; color: #244e7e; text-align: right;" class="grid_HeaderRank">
                                                               Rank
                                                           </td>
                                                       </tr>
                                                   </table>
                                               </HeaderTemplate>
                                               <ItemTemplate>
                                                   <table width="100%">
                                                       <tr>
                                                           <td style="width: auto;" align="left" class="text12_d">
                                                               <asp:Label ID="lblSource" runat="server" Text='<%#Eval("SourceName")%>'></asp:Label>
                                                           </td>
                                                           <td style="width: auto; text-align: right; padding-right: 16px" class="text12_d">
                                                               <asp:Label ID="lblRank" runat="server" Text='<%#Eval("OverallRank")%>'></asp:Label>
                                                           </td>
                                                       </tr>
                                                   </table>
                                               </ItemTemplate>
                                           </asp:TemplateField>
                                       </Columns>
                                   </asp:GridView>
                               </span><span style="float: left; padding-left: 6px; width: auto">
                                   <asp:GridView ID="grdCollegeRank2" runat="server" AutoGenerateColumns="false" CssClass="text12_d"
                                       Width="">
                                       <HeaderStyle ForeColor="White" />
                                       <RowStyle CssClass="gridview-row" />
                                       <AlternatingRowStyle BackColor="#fffbfd" />
                                       <Columns>
                                           <asp:TemplateField HeaderText="">
                                               <HeaderTemplate>
                                                   <table width="100%">
                                                       <tr style="background-color: #244e7e">
                                                           <td style="width: 100%; background-color: #244e7e; font-size: 13px; font-weight: bold;
                                                               color: white; padding-left: 3px" colspan="2" align="left">
                                                               College Rank in
                                                               <asp:Label ID="lblYear" runat="server" Text="2009" ForeColor="white" Font-Size="13px"
                                                                   Font-Bold="true"></asp:Label>
                                                           </td>
                                                       </tr>
                                                       <tr>
                                                           <td style="width: auto; color: #244e7e; text-align: left;" class="grid_HeaderRank">
                                                               Source
                                                           </td>
                                                           <td style="width: auto; color: #244e7e; text-align: right;" class="grid_HeaderRank">
                                                               Rank
                                                           </td>
                                                       </tr>
                                                   </table>
                                               </HeaderTemplate>
                                               <ItemTemplate>
                                                   <table width="100%">
                                                       <tr>
                                                           <td style="width: auto;" align="left" class="text12_d">
                                                               <asp:Label ID="lblSource" runat="server" Text='<%#Eval("SourceName")%>'></asp:Label>
                                                           </td>
                                                           <td style="width: auto; text-align: right; padding-right: 16px" class="text12_d">
                                                               <asp:Label ID="lblRank" runat="server" Text='<%#Eval("OverallRank")%>'></asp:Label>
                                                           </td>
                                                       </tr>
                                                   </table>
                                               </ItemTemplate>
                                           </asp:TemplateField>
                                       </Columns>
                                   </asp:GridView>
                               </span><span style="float: right; padding-right: 0px; width: 50%">
                                   <asp:LinkButton ID="lnkCollegeRank" CommandName="ViewMore" CausesValidation="false"
                                       runat="server" CssClass="ReadMore">View More...</asp:LinkButton>
                               </span>
                           </asp:Panel>
                       </fieldset>
                       <br />
                   </asp:Panel>
                   <fieldset>
                       <legend class="Legend_Header"><strong>Infrastructure</strong></legend>
                       <br />
                       <asp:GridView ID="grdHostelInformation" runat="server" AutoGenerateColumns="false"
                           CssClass="text12_d" Width="100%">
                           <HeaderStyle BackColor="#244e7e" ForeColor="#f7f7f7" />
                           <RowStyle CssClass="gridview-row" />
                           <Columns>
                               <asp:TemplateField HeaderText="Hostel">
                                   <ItemStyle Width="10%" />
                                   <HeaderStyle CssClass="grdsize" />
                                   <ItemTemplate>
                                       <a href="#" target="_blank" class="text12_d">
                                           <%#Eval("CollegeHostelInfo")%>
                                       </a>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Location">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <%#Eval("HostelLocation")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Internet">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <%#Eval("HostelInteranet")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Laundry">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <%#Eval("HostelLaundry")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Power Backup">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <%#Eval("HostelElectricityBackup")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="AC">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <%#Eval("HostelAC")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Charges">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <%#Eval("HostelCharges")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                               <asp:TemplateField HeaderText="Occupancy">
                                   <HeaderStyle HorizontalAlign="Center" />
                                   <ItemStyle HorizontalAlign="Center" />
                                   <ItemTemplate>
                                       <%#Eval("HostelOccupacy")%>
                                   </ItemTemplate>
                               </asp:TemplateField>
                           </Columns>
                       </asp:GridView>
                   </fieldset>
                   <br />
                   <fieldset>
                       <legend class="Legend_Header"><strong>Contact Details</strong></legend>
                        <ul style="vertical-align:top; background-color:#f4faff;">
                            <li class="textLiExam">
                                <strong style="font-weight:bold; font-size:14px; color:Black;">Address &nbsp;:</strong>
                                <%# Eval("CollegeStreet")%>
                                <%# Eval("CollegeDistrict")%>
                                <%# Eval("StateName")%>
                                <%# Eval("CollegePinCode")%>
                            </li>
                            <li class="textLiExam">
                                <strong style="font-weight:bold; font-size:14px; color:Black;">Email Id &nbsp;&nbsp;&nbsp;:&nbsp;</strong>
                                <%# Eval("CollegePersonEmail")%>
                            </li>
                            <li class="textLiExam">
                                <strong style="font-weight:bold; font-size:14px; color:Black;">Website &nbsp;&nbsp;:&nbsp;</strong>
                                <a href='<%# String.Format("{0}{1}","http://" , Eval("CollegeWebsite")) %>'
                                       target="_blank" class="textLiExam">
                                       <%# Eval("CollegeWebsite")%>
                                   </a>
                            </li>
                            <li class="textLiExam">
                                <strong style="font-weight:bold; font-size:14px; color:Black;">Phone &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;</strong>
                                <%# Eval("CollegePhone1")%>
                                       ,&nbsp;
                                       <%# Eval("CollegePhone2")%>
                            </li>
                            <li class="textLiExam">
                                <strong style="font-weight:bold; font-size:14px; color:Black;">Fax &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;</strong>
                                <%# Eval("CollegeFax")%>
                            </li>
                        </ul>
                   </fieldset>
               </ItemTemplate>
           </asp:DataList>

此处代码如何在数据列表中扣除网格视图

  protected void dl_College_ItemDataBound(object sender, DataListItemEventArgs e)
    {


        GridView grdCollegeRank = (GridView)e.Item.FindControl("grdCollegeRank");
        GridView grdCollegeRank1 = (GridView)e.Item.FindControl("grdCollegeRank1");
        GridView grdCollegeRank2 = (GridView)e.Item.FindControl("grdCollegeRank2");
        Panel pnlRank = (Panel)e.Item.FindControl("pnlCollegeRank");
        string sqlquery1 = "select top 1 * from dbo.CollegeCourseStream,dbo.University where dbo.CollegeCourseStream.UniversityId = dbo.University.UniversityId and CollegeCourseStream.collegeId='" + Request.QueryString["Collegeid"] + "'";
        DataTable dt_Vendor1 = lk.dt_Select(sqlquery1);
        if (dt_Vendor1.Rows.Count > 0)
        {
            lblAffiliation.Text = dt_Vendor1.Rows[0]["UniversityName"].ToString();            
        }

        DataSet sdr = new DataSet();
        sdr = ObjClsCollege.GetCollegeRank(Convert.ToInt32(Request.QueryString["CollegeId"]));
        grdRank = sdr.Tables[0].Rows.Count;
        if (sdr.Tables[0].Rows.Count > 0)
        {
            grdCollegeRank.DataSource = sdr.Tables[0];
            grdCollegeRank.DataBind();
        }
        else
        {
            grdCollegeRank.Visible = false;
        }
        string sqlquery2 = "select * from dbo.tblRankSource,dbo.tblRank where dbo.tblRank.SourceId=dbo.tblRankSource.SourceId and dbo.tblRank.CollegeId='" + Convert.ToInt32(Request.QueryString["Collegeid"].ToString()) + "' and tblRank.Year='"+ 2010 +"' order by Year DESC";
        DataSet sdr2 = lk.selectDate_Source(sqlquery2);
        grdRank1 = sdr2.Tables[0].Rows.Count;
        if (sdr2.Tables[0].Rows.Count > 0)
        {
            grdCollegeRank1.DataSource = sdr2.Tables[0];
            grdCollegeRank1.DataBind();
        }
        else
        {
            grdCollegeRank1.Visible = false;
        }

        string sqlquery3 = "select * from dbo.tblRankSource,dbo.tblRank where dbo.tblRank.SourceId=dbo.tblRankSource.SourceId and dbo.tblRank.CollegeId='" + Convert.ToInt32(Request.QueryString["Collegeid"].ToString()) + "'and tblRank.Year='" + 2009 + "' order by Year DESC";
        DataSet sdr3 = lk.selectDate_Source(sqlquery3);
        grdRank2 = sdr3.Tables[0].Rows.Count;
        if (sdr3.Tables[0].Rows.Count > 0)
        {
            grdCollegeRank2.DataSource = sdr3.Tables[0];
            grdCollegeRank2.DataBind();
        }
        else
        {
            grdCollegeRank2.Visible = false;
        }

            if (Request.QueryString["CollegeId"] != null)
            {
                GridView currChk = (GridView)e.Item.FindControl("grdCorse");
                ObjClsCollege = new ClsCollege();
                DS = new DataSet();
                ImageMap CollegeImage = (ImageMap)e.Item.FindControl("CollegeImage");

                string sqlquery = "Select * from College,State,Course where College.stateid=State.stateid and College.CourseId=Course.CourseId and  College.CollegeId='" + Request.QueryString["Collegeid"] + "'";
                DataTable dt_Vendor = lk.dt_Select(sqlquery);
                if (dt_Vendor.Rows.Count > 0)
                {
                    CollegeImage.ImageUrl = "College Image\\" + dt_Vendor.Rows[0]["CollegeImage"].ToString();
                    //CollegeImage.ImageUrl = dt_Vendor.Rows[0]["CollegeImage"].ToString();                    
                }
                DS = ObjClsCollege.GetTheCollegeCorse(Convert.ToInt32(Request.QueryString["CollegeId"]));
                if (DS.Tables[0].Rows.Count > 0)
                {
                    currChk.DataSource = DS.Tables[0];
                    currChk.DataBind();

                }
                foreach (GridViewRow Row in currChk.Rows)
                {
                    Label lblStreamFee = ((Label)Row.FindControl("lblStreamFee"));
                    Image imgLock = ((Image)Row.FindControl("imgLock"));
                    lblStreamFee.Visible = true;
                    imgLock.Visible = false;
                }
            }
        }
        else
        {


    }

这样你就可以在datalist中找到gridview

答案 1 :(得分:0)

我使用Colorbox插件做了类似的事情。

如果您知道链接将导致可以在加载时在页面中预编译的网格,则此方法有效。

如果允许弹出窗口显示网格,则可以选择此选项。

a)在页面上有一个占位符,用于存储生成的html代码  您需要为每个链接添加唯一标识符。

b)从代码背后,我正在构建网格。

- 剪断 -

Dim mystat As New TableCell With {.Text = "<a href='#' class='" & texttoappear & h & i & j & "'>" & mycount & "</a>", .HorizontalAlign = HorizontalAlign.Center}
myrow.Cells.Add(mystat)
prepareminidataset(myoraclefilter.ToString, (texttoappear & h & i & j).ToString)

--- snip--

锚点指向同一页面,更重要的是我正在构建的类,因为这是colorbox插件用来查找需要显示的网格的类。
Prepareminidataset是一个函数,我从数据库后端检索细节(你可能不需要这个)。独特的组合 texttoappear&amp; h&amp;我和我j 成为我的函数中稍后使用的“引用”字符串。 (h,i&amp; j是我在网格中的位置,因此每个字段都是唯一的)


c)I)然后我构建数据网格以通过函数显示,使用数据库中提取的数据作为数据集ds

Private Sub prepareminigrid(ByVal reference As String, ByRef myds As DataSet)
    Dim Itemheader As Control = LoadControl("warrantydetailgrid.ascx")
    Dim thegrid As GridView = CType(Itemheader.FindControl("mygrid"), GridView)
    thegrid.DataSource = myds
    thegrid.DataBind()
    myhiddenpopups.Controls.Add(New LiteralControl("<div id='" & reference & "' style='padding:10px; background:#fff;'> "))
    myhiddenpopups.Controls.Add(Itemheader)
    myhiddenpopups.Controls.Add(New LiteralControl("</div>"))

    If Not strScript.ToString.Contains("$('." & reference & "').colorbox({width:'50%', inline:true, href:'#" & reference & "'});") Then
        strScript.AppendLine("$('." & reference & "').colorbox({width:'50%', inline:true, href:'#" & reference & "'});")
    End If

End Sub

II) myhiddenpopups 是我在aspx页面上的占位符,我在其中添加了html代码(因此当我按下锚点时,colorbox可以检索它

III)最后,strscript是一个startupscript,它将添加不同的colorbox函数及其唯一标记(= reference)到启动javascript。

那么它看起来像什么? 这是带锚标记的构建网格 enter image description here

这是用户点击链接时显示的网格 enter image description here

在main.aspx页面上

,您需要占位符,哪些数据不会显示

enter image description here

编译页面的结果,当'prepareminigrid'针对它需要创建的每个锚点运行时;

enter image description here

你可以看到每个锚点的唯一DIV id(这是colorbox函数在inlin html代码中寻找的)和下面的表格

缺点是您的预加载数据需要相对较小。如果你有一个包含数百行的表格,你页面的加载时间会增加,并且最终用户会得到一个“脚本需要很长时间才能完成”的警告信息。

希望有所帮助

ķ