asp设置变量取决于下拉列表并将其传递给按钮单击事件

时间:2017-09-02 16:23:52

标签: c# html asp.net

所以这有点难以解释我想要实现的目标,但希望你能从我的代码中掌握这个想法。我有一个下拉列表,需要代码将变量设置为true或false,具体取决于下拉值。现在我的工作正常。但是当我调用包含true或false的变量时,从click事件上的按钮调用时它总是为false。即使变量设置为true,如果我更改下拉选择。

我不知道这对其他人是否有意义,但这里是下拉列表的HTML代码。

<div class="col-2 text-right form-group">
                <p align="center">Technician Selection</p>
                <asp:DropDownList id="TeckSel" AutoPostBack="True" runat="server" OnSelectedIndexChanged="TeckSel_SelectedIndexChanged" CssClass="btn btn-danger dropdown-toggle" Width="100%">
                    <asp:ListItem Text="Select Technician" Value="-1"></asp:ListItem>
                    <asp:ListItem Text="Michael" Value="1"></asp:ListItem>
                    <asp:ListItem Text="Calvin" Value="2"></asp:ListItem>
                    <asp:ListItem Text="Ben" Value="3"></asp:ListItem>
                    <asp:ListItem Text="Haydon" Value="4"></asp:ListItem>
                    <asp:ListItem Text="Luke" Value="5"></asp:ListItem>
                    <asp:ListItem Text="Liam" Value="6"></asp:ListItem>
                </asp:DropDownList>
            </div>

这是我的c#。

public partial class _Default : System.Web.UI.Page
{
    String TechName = "";
    String TeckKey = "";
    bool Selected;

protected void Page_Load(object sender, EventArgs e)
{

}

protected void TeckSel_SelectedIndexChanged(object sender, EventArgs e)
{
    var DropList = TeckSel.SelectedValue;

    switch (DropList)
    {
        case "-1":
            Selected = false;
            TechName = "Calvin Reid";
            break;
        case "1":
            TeckKey = "emememe";
            TechName = "Dave";
            Selected = true;
            break;
        case "2":
            TeckKey = "emememe";
            TechName = "Steve";
            Selected = true;
            break;
    }
    ActionOutput.Text = TechName + Selected.ToString();
}



protected void ButUnlockAcc_Click(object sender, EventArgs e)
{

    ActionOutput.Text = Selected.ToString() + TechName.ToString();

}
}

我应该注意到我有一个名为'ActionOutput'的文本框,还有一个名为'ButUnlockAcc_click'的onclick事件按钮。

为什么当按下按钮时,为什么名为'Selected'的bool的值总是为false,即使在开关中声明它的真实值得赞赏。

1 个答案:

答案 0 :(得分:0)

点击按钮后,您需要致电TeckSel_SelectedIndexChanged设置Selected的值:

protected void ButUnlockAcc_Click(object sender, EventArgs e)
{
    TeckSel_SelectedIndexChanged(sender,e);
    ActionOutput.Text = Selected.ToString() + TechName.ToString();
}