Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击单选按钮,使下拉列表可见_C#_Asp.net - Fatal编程技术网

C# 单击单选按钮,使下拉列表可见

C# 单击单选按钮,使下拉列表可见,c#,asp.net,C#,Asp.net,当我执行无线电按钮单击时,我想将下拉列表设置为可见。单选按钮和下拉列表位于同一个数据网格中。我不知道该怎么做 <asp:UpdatePanel ID="updatepanel" UpdateMode="conditional" runat="server"> <ContentTemplate> <asp:DataGrid ID="DataGrid" AutoGenerateColumns = "false" CssClass="objectS

当我执行
无线电按钮单击
时,我想将
下拉列表
设置为可见。
单选按钮
下拉列表
位于同一个
数据网格
中。我不知道该怎么做

<asp:UpdatePanel ID="updatepanel" UpdateMode="conditional" runat="server">
    <ContentTemplate>
        <asp:DataGrid ID="DataGrid" AutoGenerateColumns = "false" CssClass="objectSubTitle" ItemStyle-Wrap="true" runat="server" OnItemCommand="handler" ><Columns>
            <asp:TemplateColumn>
                <ItemTemplate>
                   <asp:RadioButton ID ="RadioButton1" Text="Yes" GroupName="creatingNewCard" OnCheckedChanged="RadioButtonYes" AutoPostBack="True" runat="server" />
                  <asp:DropDownList ID="DropDownList1"  Visible="false" runat="server"/>
                </ItemTemplate>
            </asp:TemplateColumn>

假设它们位于
模板字段的
项目模板中,并且您希望在服务器端切换活动性:

protected void RbCheckedChanged(Object sender, EventArgs e)
{
    var radioButton1 = (RadioButton)sender;
    var row = (GridViewRow)radioButton1.NamingContainer;
    var dropDownList1 = (DropDownList)row.FindControl("DropDownList1");
    dropDownList1.Visible = radioButton1.Checked;
}
GridView示例:

<asp:GridView ID="GridView1" AutoGenerateColumns="false" OnRowDataBound="Grid_RowDataBound"
    runat="server">
    <Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:RadioButton  ID="RadioButton1" runat="server" OnCheckedChanged="RbCheckedChanged" AutoPostBack="true"></asp:RadioButton>
        </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:GridView>

您可以在单选按钮checked changed事件中调用DropdOnlist的Visible属性,如下所示

protected void RadioButton1_CheckedChanged(Object sender, EventArgs e)
{
    var radioButton1= (RadioButton)sender;
    var item = (DataGridItem)radioButton1.NamingContainer;
    var dropDownList1 = (DropDownList)item.FindControl("DropDownList1");

    dropDownList1.Visible = radioButton1.Checked ? true : false;
}

你能在我们看到DropDownList和RadioButton的地方显示网格的aspx标记吗?你真的在使用旧的DataGrid还是新的GridView(类似)?你建议使用GridView而不是DataGrid吗?@escobar_season:它们很相似,GridView可以实现DataGrid所能实现的一切,但反之亦然。看看这里的区别:使用DataGrid的唯一原因是您要么只有.NET1.1。或者您需要使用ASP.NET 1.1维护旧项目。如果它们位于不同的
ASP:TemplateColumn
,该怎么办?将var item=
(DataGridItem)radioButton1.NamingContainer必须更改吗?
protected void RadioButton1_CheckedChanged(Object sender, EventArgs e)
{
    var radioButton1= (RadioButton)sender;
    var item = (DataGridItem)radioButton1.NamingContainer;
    var dropDownList1 = (DropDownList)item.FindControl("DropDownList1");

    dropDownList1.Visible = radioButton1.Checked ? true : false;
}