使用页脚模板在c#中的GridView中添加新行
本文关键字:GridView 中的 添加 新行 | 更新日期: 2023-09-27 18:19:40
我正在使用页脚模板在GridView中添加新行。
在页脚模板中,我有三个下拉列表。
在下拉列表DZ_DDL
中,我有以下值:
ZA
ZF
ZG
ZL
ZM
ZVR
ZTR
在下拉列表M_DDL
中,我有以下值:
Z
ZVR
ZTR
我需要检查这个:
- 如果下拉列表中
DZ_DDL
所选值为ZA或ZF或ZG或ZL或者ZM I需要在下拉列表CCD_ 4中禁用值ZVR和ZTR - 如果在下拉列表
DZ_DDL
中选择的值是ZVR,我需要在中禁用下拉列表CCD_ 6包括值Z和ZTR - 如果在下拉列表中
DZ_DDL
选择的值是ZTR,我需要在中禁用下拉列表CCD_ 8包括值Z和ZVR
你能解释一下是怎么做到的吗?
我下面的代码:
if (e.Row.RowType == DataControlRowType.Footer)
{
DropDownList DZ_DDL = (DropDownList)e.Row.FindControl("DZ_DDL");
DropDownList Level_DDL = (DropDownList)e.Row.FindControl("Level_DDL");
DropDownList M_DDL = (DropDownList)e.Row.FindControl("M_DDL");
sql1 = " SELECT ....; ";
OdbcCommand cmd = new OdbcCommand(sql1);
DZ_DDL.DataSource = GetData(cmd);
DZ_DDL.DataTextField = "name";
DZ_DDL.DataValueField = "name";
DZ_DDL.DataBind();
sql2 = " SELECT ....; ";
OdbcCommand cmd2 = new OdbcCommand(sql2);
Level_DDL.DataSource = GetData(cmd2);
Level_DDL.DataTextField = "PZA";
Level_DDL.DataValueField = "PZA";
Level_DDL.DataBind();
sql3 = " SELECT ....; ";
OdbcCommand cmd3 = new OdbcCommand(sql3);
M_DDL.DataSource = GetData(cmd3);
M_DDL.DataTextField = "Name";
M_DDL.DataValueField = "Name";
M_DDL.DataBind();
}
ASPX代码
<div>
<asp:ScriptManager ID="SM" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DZ_DDL" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DZ_DDL_SelectedIndexChanged" OnTextChanged="DZ_DDL_TextChanged" ViewStateMode="Enabled">
<asp:ListItem Value="ZA">ZA</asp:ListItem>
<asp:ListItem Value="ZF" Enabled="true">ZF</asp:ListItem>
<asp:ListItem Value="ZG">ZG</asp:ListItem>
<asp:ListItem Value="ZL">ZL</asp:ListItem>
<asp:ListItem Value="ZM">ZM</asp:ListItem>
<asp:ListItem Value="ZVR">ZVR</asp:ListItem>
<asp:ListItem Value="ZTR">ZTR</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="M_DDL" runat="server">
<asp:ListItem>Z</asp:ListItem>
<asp:ListItem>ZVR</asp:ListItem>
<asp:ListItem>ZTR</asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DZ_DDL" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
CS代码
protected void DZ_DDL_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
DropDownList DZ_DDL = (DropDownList)this.FindControl("DZ_DDL");
//DropDownList Level_DDL = (DropDownList)this.FindControl("Level_DDL");
DropDownList M_DDL = (DropDownList)this.FindControl("M_DDL");
string str = DZ_DDL.SelectedValue.ToString();
if (str == "ZA" || str == "ZF" || str == "ZG" || str == "ZL" || str == "ZL")
{
ListItem i = M_DDL.Items.FindByValue("ZVR");
i.Attributes.Add("style", "color:gray;");
i.Attributes.Add("disabled", "true");
i = M_DDL.Items.FindByValue("ZTR");
i.Attributes.Add("style", "color:gray;");
i.Attributes.Add("disabled", "true");
}
else if (str == "ZVR")
{
ListItem i = M_DDL.Items.FindByValue("Z");
i.Attributes.Add("style", "color:gray;");
i.Attributes.Add("disabled", "true");
i = M_DDL.Items.FindByValue("ZTR");
i.Attributes.Add("style", "color:gray;");
i.Attributes.Add("disabled", "true");
}
else if (str == "ZTR")
{
ListItem i = M_DDL.Items.FindByValue("Z");
i.Attributes.Add("style", "color:gray;");
i.Attributes.Add("disabled", "true");
i = M_DDL.Items.FindByValue("ZVR");
i.Attributes.Add("style", "color:gray;");
i.Attributes.Add("disabled", "true");
}
}
catch(Exception ex)
{
}
}