关于datagrid当中RadioButtonList控件的使用问题

acui9937 2003-08-31 11:02:29
我想通过RadioButtonList空间实现以下功能:
在datagrid控件里面添加一个RadioButtonList控件,添加情况如下:
<asp:datagrid id="dgMenu" runat="server" OnItemCommand="menuManageCmd"

AutoGenerateColumns="False" Width="100%" CellPadding="0" HorizontalAlign="Center">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
是否首页显示
</HeaderTemplate>
<ItemTemplate>
<asp:RadioButtonList id="rblIndexShow" Enabled="True" AutoPostBack="true" runat="server"

CellPadding="0" RepeatDirection="Horizontal" CellSpacing="0" DataValueField="FirstShowMenu">
<asp:ListItem Value="1">是</asp:ListItem>
<asp:ListItem Value="2" Selected="True">否</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
我怎样才能够使得:
点击“是”或“否”之后,自动进行数据库的存储呀?
就是将其value值为1的记录号码存储到某个表中,
而且所有记录当中,
能且只能选择其中的一条为首页显示。
请诸位大虾多多帮忙,谢谢!
...全文
141 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
llm2002 2003-09-03
  • 打赏
  • 举报
回复
for(int i=0 ;i<DataGrid1.Items.Count;i++)
{
((RadioButton)DataGrid1.Items[i].Cell[icolumn].FindControl("rbIndexShowYes").Checked={True|False};
//以上设置rbIndexShowYes的选择状况了.
}
acui9937 2003-09-02
  • 打赏
  • 举报
回复
是的,是需要循环才能保证只有一个被选中,但我不知道该怎么编
acui9937 2003-09-02
  • 打赏
  • 举报
回复
大家帮帮忙吧!
llm2002 2003-09-01
  • 打赏
  • 举报
回复
你看一下我上面的代码,
我是说你将记录的id号绑定到RadioButton的Text属性,然后才有"号码 = ((RadioButton)sender).Text;"

Text='<%# DataBinder.Eval(Container,"DataItem.Field") %>'
中Fiedl就是你id号的字段名NO了.

你选择那个RadioButton就表示该记录为首页显示,反之就不是了.

另外我个人认为RadioButton由DataGrid项模板自动生成,由于NamingContainer,它的GroupName将无法一样(即使你设置为了GroupName的值).因此要求你自己循环DataGrid的项来保证只有一个被
选中.

acui9937 2003-09-01
  • 打赏
  • 举报
回复
下面是我的datagrid数据绑定函数,
可是我不晓得该如何绑定RadioButton
请执教:
private void showMenu2(string menuNo)
{
string webNo = Request["webNo"];
//查询首页显示栏目号码
string sqlFirstShowMenu = "select FirstShowMenu from WebBaseInfo where NO='"+webNo+"'";
DataSet dsFirstShowMenu = (new DataAccess()).GetDataSet(sql,"firstShow");
string firstShowMenu = dsFirstShowMenu.Tables[0].Rows[0]["FirstShowMenu"].ToString();
//给datagrid赋值
string sql = "select WebMenu.NO,WebMenu.Title from WebMenu,WebBaseInfo where WebMenu.BelongNo=WebBaseInfo.NO and WebMenu.BelongNo = '"+webNo+"'and WebMenu.UpMenuNo = '"+menuNo+"'";
DataSet ds = (new DataAccess()).GetDataSet(sql,"showMenu");
int count = ds.Tables[0].Rows.Count;
if(count > 0)
{
dgMenu.Visible = true;
dgMenu.Visible = true;
dgMenu.DataSource = ds.Tables["showMenu"];
dgMenu.DataBind();
}
else
{
dgMenu.Visible = false;
}
}
另外:
号码 = ((RadioButton)sender).Text;
这条语句能找到该记录的id号吗?
他不是“是”吗 ?
我通过Response.write来调试结果显示不出来,
是怎么回事?
guoyan19811021 2003-08-31
  • 打赏
  • 举报
回复
1:autopostback=true
2: 'Dim i As Integer
'Dim aa As ListItem = New ListItem("", "")
'Dim d As RadioButtonList
'For i = 0 To DataGrid1.Items.Count - 1
' d = DataGrid1.Items(i).FindControl("RadioButtonList1")
' d.Items.Add(aa)
'Next

'DataGrid1.Items(0).Cells(0).RowSpan = DataGrid1.Items.Count
'For i = 1 To DataGrid1.Items.Count - 1
' DataGrid1.Items(i).Cells(0).Visible = False
'Next
llm2002 2003-08-31
  • 打赏
  • 举报
回复
1.你可以使用RadioButton有选中的存储到数据库,没选的就不用了,不要用RadioButtonList
2.DataGrid记录列表中你的RadioButton将是根据记录模板自动生成的,由于NameCollection,
所以它的GroupName将无法一样(我个人认为).所以你必须自己保证只有一项被选中.
3.你必须保留当前选择的项,当选择改变时你要将原来的首页显示给取消,然后设置当前选择的项
为首页显示.
4.<asp:RadioButton id="rblIndexShow" Enabled="True" AutoPostBack="true" runat="server" OnCheckChanged="Changed" Text='<%# DataBinder.Eval(Container,"DataItem.Field") %>'> </asp:RadioButton>


behind code:
public void Changed(object sender,System.EventArgs e)
{
//通过以下可以得到当前选中RadioButton 的Text属性值.
((RadioButton)sender).Text;
//这里你可以知道当前的记录了,你就可以进行相应处理了.
}

你可以将RadioButton的Text属性绑定一些必要的信息
acui9937 2003-08-31
  • 打赏
  • 举报
回复
大家帮帮忙吧!
llm2002 2003-08-31
  • 打赏
  • 举报
回复
1.你不用用两个RadioButton控件,因为RadioButton本身就有两中状态的.
2.你可以没条记录对应一个RadioButton,然后循环DataGrid的项和findcontrol
方法来查找到RadioButton,根据数据库中读取的号码来确定相应记录对应的
RadioButton的Checked状态.
3.当用户选择时会出发事件rbIndexShowYes,你可以根据Checked的当前值来判断是否选中
来处理相应的事件(存储号码等.)
<ItemTemplate>
<asp:RadioButton id="rbIndexShowYes" Enabled="True" AutoPostBack="true"
runat="server" OnCheckChanged="changedYes"
Text='<%# DataBinder.Eval(Container,"DataItem.Field") %>'>
</asp:RadioButton>
</ItemTemplate>

// 下面的方法一定不能是private的否则将提示方法受保护之类的错误.
public void changedYes(object sender,System.EventArgs e)
{
// 如果当前为选中状态.
if( ( (RadioButton)sender ).Checked )
{
//简单的你可以将Text属性中绑定字段设置为信息的号码.
// 通过以下获得号码
号码 = ((RadioButton)sender).Text;
//然后就可以了修改存储在数据库中的号码了.
}
else
{
// 取消选中
// 你可以进行相应的处理,比如将数据库中的号码恢复回去等.
}
}

acui9937 2003-08-31
  • 打赏
  • 举报
回复
我的具体功能是:
1,根据从数据库里面查询出的号码来确定某条信息是否显示,是的话则选择“是”;
默认选择“否”;(因为只能有 一项选择“是”);
2,选择“是”后,自动将该条信息的号码存储到数据库,来代替元来的号码;
主要是因为它是控件中的控件,
所以不太好写 ,
还求各为大虾多多指教 。
acui9937 2003-08-31
  • 打赏
  • 举报
回复
public void Changed(object sender,System.EventArgs e)
{
//通过以下可以得到当前选中RadioButton 的Text属性值.
((RadioButton)sender).Text;
//这里你可以知道当前的记录了,你就可以进行相应处理了.
}
能否说的在详细点儿?
我这样改的:
<ItemTemplate>
<asp:RadioButton id="rbIndexShowYes" Enabled="True" AutoPostBack="true" runat="server" OnCheckChanged="changedYes"Text="是"></asp:RadioButton>
<asp:RadioButton id="rbIndexShowNo" Enabled="True" AutoPostBack="true" Checked=True runat="server" OnCheckChanged="changedNo"Text="否">
</asp:RadioButton>
</ItemTemplate>
请问:怎样程序设计?
acui9937 2003-08-31
  • 打赏
  • 举报
回复
我是用的c#编程,
具体程序的设计还是有点摸不着头绪。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧