首页 > 解决方案 > 如何根据gridview中的选定行在数据库中的表中显示数据

问题描述

我试图从数据库中检索数据,以显示在一个模式框中,该模式框中包含一个包含所选行详细信息的数据表。我遇到的问题似乎是,无论我选择什么行,显示详细信息的模式框仅使用数据库中的第一行。这是gridview的asp.net代码。

网格视图:

<asp:GridView ID="smry" runat="server" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand" CssClass="list-group" >
                                <Columns>
                                    <asp:ButtonField Text="View" CommandName="Viewdet"/>
                                    <asp:TemplateField HeaderText="MRF No">
                                            <ItemTemplate>
                                               <asp:Label ID="mrfnoret" runat="server" Text='<%# Eval("MRF_No") %>'></asp:Label>
                                            </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:BoundField DataField="BU" HeaderText="Business Unit" SortExpression="BU" />
                                    <asp:BoundField DataField="Dept" HeaderText="Department" SortExpression="Dept" />
                                    <asp:BoundField DataField="ReqByDept_Mngr" HeaderText="Reqested By" SortExpression="ReqByDept_Mngr"  />
                                </Columns>
                        </asp:GridView>

后面的代码:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {


        if(e.CommandName == "Viewdet")
        {


            database db = new database();
            string database = db.MRF();
            using (SqlConnection con = new SqlConnection(database))
            {
                con.Open();

                string query = "SELECT [MRF_No], [BU], [Dept], [PostTitle], [ReqdPrsnl], [Rank], [JobFam], [ToEmp], [JobDesc], [Edu], [WorkExp], [ITSkills], [OpMachines], [PersonalAtt], [others], [MinSalRange], [MaxSalRange], [ReqByDept_Mngr], [NoteBy_Bu_Head], [AppByHR_Mngr] FROM MRF_Details"
                    + "";
                using (SqlCommand com = new SqlCommand(query, con))
                using (SqlDataAdapter sda = new SqlDataAdapter(query, con))
                {
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                    details.DataSource = dt;
                    details.DataBind();
                }
                con.Close();
            }

            ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"Pop", "openModal();", true);
        }
    }

万一有些人想知道我想从数据库中检索数据并将其显示在模式框中。这里也是模态框代码。

 <div id="TestModal" class="modal fade" role="dialog">
                                         <div class="modal-dialog modal-lg ">
                                             <%-- MODAL CONTENT --%>
                                             <div class="modal-content">
                                                 <div class="modal-header">
                                                     <asp:Label class="modal-title" runat="server" Text="DETAILS" CssClass="text-pos"></asp:Label>
                                                 </div>
                                                 <div class="modal-body modalScroll">
                                                     <div class ="row next">
                                                     <asp:DetailsView runat="server" ID="details" CssClass="table" AutoGenerateRows="false">
                                                         <Fields>

                                                                <asp:BoundField DataField="MRF_No" HeaderText="MRF No" SortExpression="MRF_No" />
                                                                <asp:BoundField DataField="BU" HeaderText="BUSINESS UNIT:" SortExpression="BU" />
                                                                <asp:BoundField DataField="Dept" HeaderText="DEPARTMENT:" SortExpression="Dept" />
                                                                <asp:BoundField DataField="PostTitle" HeaderText="POSITION TITLE:" SortExpression="PostTitle" />
                                                                <asp:BoundField DataField="ReqdPrsnl" HeaderText="NO. OF REQ'D PERSONNEL:" SortExpression="ReqdPrsnl" />
                                                                <asp:BoundField DataField="Rank" HeaderText="RANK / LEVEL" SortExpression="Rank" />
                                                                <asp:BoundField DataField="JobFam" HeaderText="JOB FAMILY" SortExpression="JobFam" />
                                                                <asp:BoundField DataField="ToEmp" HeaderText="TERMS OF EMPLOYMENT" SortExpression="ToEmp" />
                                                                <asp:BoundField DataField="JobDesc" HeaderText="DUTIES AND RESPONSIBILITIES" SortExpression="JobDesc" />
                                                                <asp:BoundField DataField="Edu" HeaderText="EDUCATION / PRC LICENSES / CERTIFICATIONS" SortExpression="Edu" />
                                                                <asp:BoundField DataField="WorkExp" HeaderText="Work Experience" SortExpression="WorkExp" />
                                                                <asp:BoundField DataField="ITSkills" HeaderText="IT SKILLS / SOFTWARE & HARDWARE PROFICIENCIES" SortExpression="ITSkills" />
                                                                <asp:BoundField DataField="OpMachines" HeaderText="OPERATIONS OF MACHINES" SortExpression="OpMachines" />
                                                                <asp:BoundField DataField="PersonalAtt" HeaderText="PERSONAL ATTRIBUTES" SortExpression="PersonalAtt" />
                                                                <asp:BoundField DataField="others" HeaderText="OTHERS" SortExpression="others" />
                                                                <asp:BoundField DataField="MinSalRange" HeaderText="Minimum Salary Range" SortExpression="MinSalRange" />
                                                                <asp:BoundField DataField="MaxSalRange" HeaderText="Maximum Salary Range" SortExpression="MaxSalRange" />
                                                                <asp:BoundField DataField="ReqByDept_Mngr" HeaderText="REQUESTED BY:" SortExpression="ReqByDept_Mngr" />
                                                                <asp:BoundField DataField="NoteBy_Bu_Head" HeaderText="NOTED BY:" SortExpression="NoteBy_Bu_Head" />
                                                                <asp:BoundField DataField="AppByHR_Mngr" HeaderText="APPROVED BY:" SortExpression="AppByHR_Mngr" />

                                                         </Fields>
                                                     </asp:DetailsView>
                                                     </div>
                                                 </div>
                                                 <div class="modal-footer">
                                                     <asp:Button ID="close2" runat="server" Text="Close" data-dismiss="modal" />
                                                 </div>
                                             </div>
                                         </div>                                                
                                    </div>

标签: c#asp.netgridview

解决方案


推荐阅读