如何在下拉菜单中显示选定的行值/文本

问题描述 投票:0回答:1

因此,我是不熟悉ASP.net的人,我很难在下拉列表中显示所选行的值/文本。我只想在griview中选择一行,当我选择时,其中的值应填充文本框和下拉列表,有人可以帮助我吗?谢谢

这是我的代码背后,正如您在LoadData()部分中看到的那样,我使用了.findtext(),但它输出了一个错误:对象引用未设置为对象的实例。

protected void grdRecentCases_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
   {
       if (e.Row.RowType == DataControlRowType.DataRow)
       {
           e.Row.Attributes["onmouseover"] = "this.style.cursor='hand';this.style.textDecoration='underline';this.style.cursor='Pointer'";
           e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
           e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(this.grdRecentCases, "Select$" + e.Row.RowIndex);
       }
   }


   protected void grdRecentCases_RowCommand(Object sender, GridViewCommandEventArgs e)
   {
       if (e.CommandName == "Select")
       {
           LoadData(Convert.ToInt32(e.CommandArgument));

       }
   }

   ///<summary> LoadData is used to populate inputboxes with the value of the selected griview row</summary>
   ///<param name="rowNumber"> Indicates whether there is a selected row or non</param>
   private void LoadData(int? rowNumber = null)
   {
       //if rowNumber is null use GridView1.SelectedIndex
       var index = rowNumber ?? grdRecentCases.SelectedIndex;

       //Populate the input box with the value of selected row.
       GridViewRow gr = grdRecentCases.Rows[index];
       txtDepartmentCase.Text = gr.Cells[2].Text;
       txtLabCase.Text = gr.Cells[5].Text;
       txtIncidentReportDate.Text = gr.Cells[6].Text;
       txtCaseKey.Text = gr.Cells[1].Text;
       drpDepartment.Items.FindByText(gr.Cells[3].Text).Selected = true;
       drpCharge.Items.FindByText(gr.Cells[4].Text).Selected = true;

   }

HTML代码

<table class="style2">
            <tr>
                <td class="style3">
                    Department Case #
                </td>
                <td>
                    <asp:TextBox ID="txtDepartmentCase" runat="server" Enabled="False"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style3">
                    Department
                </td>
                <td>
                    <asp:DropDownList ID="drpDepartment" runat="server" Height="18px" Width="153px" Enabled="False"
                        AppendDataBoundItems="true" AutoPostBack="true" OnSelectedIndexChanged="drpDepartment_SelectedIndexChanged"
                        Visible="true">
                    </asp:DropDownList>
                    <asp:TextBox ID="txtDepartment" runat="server" Enabled="False"></asp:TextBox>


                </td>
            </tr>
            <tr>
                <td class="style3">
                    Charge
                </td>
                <td>
                    <asp:DropDownList ID="drpCharge" runat="server" Height="22px" Width="153px" Enabled="False"
                        AppendDataBoundItems="true" AutoPostBack="true"  OnSelectedIndexChanged="drpCharge_SelectedIndexChanged"
                        Visible="true">
                    </asp:DropDownList>
                    <asp:TextBox ID="txtCharge" runat="server" Enabled="False"></asp:TextBox>


                </td>
            </tr>
            <tr>
                <td class="style3">
                    Lab Case #
                </td>
                <td>
                    <asp:TextBox ID="txtLabCase" runat="server" Enabled="False"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style3">
                    Incident Report Date
                </td>
                <td>
                    <asp:TextBox ID="txtIncidentReportDate" runat="server" Enabled="False"></asp:TextBox>
                </td>
            </tr>
        </table>
c# html asp.net gridview dropdown
1个回答
0
投票

正如您提到的,要在griview中选择一行,当我选择时,其中的值应填充文本框和下拉列表。

希望这可以为您提供帮助。创建一个datagridview事件,RowHeaderMouseClick

     private void datagridview_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
        string selectedDoc = datagridview.Rows[datagridview.SelectedRows[0].Index].Cells["column name"].Value.ToString() ;

        combobox.Text = selectedDoc;
    }
© www.soinside.com 2019 - 2024. All rights reserved.