日期:2014-05-18  浏览次数:20472 次

如何根据控件类型找出它对应的ID以及VALUE?
在GridView中,一个单元格内有3个RadioButton(在同一组Group)

当我点击GridView外面一个button的时候想判断这个单元格内哪个RadioButton是选中状态

以下是我的代码

C# code

        foreach (GridViewRow row in GridViewDemo.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                foreach(Control obj in row.Controls) 
                {
                    if (obj.GetType().BaseType.Name.ToUpper().Contains("RADIOBUTTON"))
                    { 
                    }
                }
            }
        }



在最后一个if中却怎么都找不到任意一个RadioButton.请指教什么地方不对了,谢谢.

------解决方案--------------------
用RadioButtonList,然后再遍历看哪个选了
要不就得Findcontrol三次了
------解决方案--------------------
引用楼主 whatwherewhyhow 的帖子:
在GridView中,一个单元格内有3个RadioButton(在同一组Group)

当我点击GridView外面一个button的时候想判断这个单元格内哪个RadioButton是选中状态

以下是我的代码

C# codeforeach(GridViewRow rowinGridViewDemo.Rows)
{if(row.RowType==DataControlRowType.DataRow)
{foreach(Control objinrow.Controls)
{if(obj.GetType().BaseType.Name.ToUpper().Contains("RADIOBUTTON")…

------解决方案--------------------
foreach (GridViewRow row in GridViewDemo.Rows)
{
radiobuttonlist rbl= row.findcontrol("radiobuttonlist1") as radiobuttonlist;
if(rbl!=null)
for(int i=0;i<rbl.items.count;i++)
{
if(rbl.items.selected)
{//剩下的你肯定知道怎么写了}
}
}

------解决方案--------------------
看下这个
Rows 属性(集合)用来存储 GridView 控件中的数据行
Rows.Controls 这个集合中应该是什么呢,想一想吧。
你也说了打印出的是"System.Web.UI.WebControls.DataControlFieldCell"

代码修改为如下
C# code

 foreach (GridViewRow row in GridViewDemo.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                RadioButton rb = row.FindControl("控件名称1");
                RadioButton rb = row.FindControl("控件名称2");
                RadioButton rb = row.FindControl("控件名称3");
                //得到三个单选按钮后就可以判断了
                //判断代码略...
            }
        }

------解决方案--------------------
按照lz的意思作了一个,看看是不是这样,我试了可以显示出被选按钮的ID
HTML code

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
        <Columns>
                <asp:TemplateField HeaderText="Select" ShowHeader="False">
                    <ItemTemplate>
                        <asp:RadioButton ID="RadioButton1" runat="server" Text="RadioButton1" GroupName="RadioGroup" />
                        <asp:RadioButton ID="RadioButton2" runat="server" Text="RadioButton2" GroupName="RadioGroup" />
                        <asp:RadioButton ID="RadioButton3" runat="server" Text="RadioButton3" GroupName="RadioGroup" />
                    </ItemTemplate>
                </asp:TemplateField>   
                <asp:BoundField DataField="insertTime" HeaderText="Time" />                             
            </Columns> 
        </asp:GridView>
        <br />
        <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" />