根据ASP.Net中gridview(编辑模式)内下拉列表的选定值为gridview中的其他列设置值

本文关键字:gridview 设置 其他 Net ASP 编辑 模式 根据 下拉列表 | 更新日期: 2023-09-27 18:10:12

我有gridview与员工名称,Emp代码,指定。我正在填充员工姓名下拉列表与行绑定事件中的值。在编辑模式中,在Employee Names下拉列表中选择一个值时,EmpCode和指定应该相应地更改。empCode和指定标签控件位于templatefield中。我已经为Employee Names下拉列表编写了selectionchanged事件,

ddlEmp.SelectedIndexChanged += new EventHandler(grd_ddlEmp_SelectedIndexChanged);

但我不知道如何更改Emp代码和指定值在gridview中的特定行。

根据ASP.Net中gridview(编辑模式)内下拉列表的选定值为gridview中的其他列设置值

DropDownListSelectedIndexChanged事件中执行这些操作

  1. 首先查找行
  2. 然后访问控件并相应地更改。

伪代码
protected void grd_ddlEmp_SelectedIndexChanged(object sender, EventArgs e)
{
    GridView row = ((DropDownList)sender).NamingContainer as GridViewRow;
    Label Designation = row.FindControl("id of the designation label") as Label;
    Designation.Text = "new Designation Name";
}

在SelectedIndexChanged函数中找到下拉框

的选定值
  DropDownList ddl = (GridView1.Rows[GridView1.SelectedIndex].FindControl("DropDownList1") AS DropDownList);
  var selectedVal = ddl.SelectedValue;

执行一些代码来确定Emp代码和指定,然后填充相关的标签(或其他控件):

Label lbl = GridView1.Rows[GridView1.SelectedIndex].FindControl("Label1") as Label;

为标签赋值

您需要将gridview放在UpdatePanel中,并在SelectedIndexChanged事件后面的代码中执行,就像我在下面的数据列表中所做的那样:

<asp:DataList ID="dlstPassengers" runat="server" OnItemDataBound="dlstPassengers_ItemDataBound"
 RepeatDirection="Horizontal" RepeatColumns="2" Width="100%">
 <ItemTemplate>
       <div class="form-linebg" style="line-height: 32px;">
            <asp:DropDownList ID="ddlCountry" AutoPostBack="true"  OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged"
CssClass="select-3" Style="width: 145px; margin-bottom: 9px;" runat="server">
</asp:DropDownList>
<br />
<asp:DropDownList ID="ddlCity" CssClass="select-3" Style="width: 145px; margin-bottom: 10px;"
runat="server">
</asp:DropDownList>
</div>
</ItemTemplate>
</asp:DataList>

后面的代码:

protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
            {
                DropDownList ddlCountry = (DropDownList)sender;
                DropDownList ddlCity = (DropDownList)((DropDownList)sender).Parent.FindControl("ddlCity");
                BindCity(ddlCity, ddlCountry.SelectedValue);
            }
    private void BindCity(DropDownList ddlCity, string countryCode)
            {
    // Binding code of city based selected country
    }

您需要在SelectedIndexChanged事件上设置EmpCode和指定列,通过在后面的代码中找到控件。

在您的下拉列表中使用AutoPostBack="true"