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

GridView 行单选 RadioButton 怎么赋值与取值?(明天上午结贴)
GridView 行单选 RadioButton 怎么赋值与取值?(明天上午结贴)

数据表结构
ID主键 标题 结果
1 XXXX 赞成
2 XXX 反对  


我要生成如下格式的GridView 

标题 反对/赞成
XXXX RadioButton <---- 一行为一组RadioButton,当数据表读出来为赞成时,RadioButton 就默认选中赞成
XXX RadioButton 



还有我怎么取到RadioButton 的值。

------解决方案--------------------
想想不难。gridview里面用模板
<>标题<> <>反对/赞成<> 这里放个隐藏域给附上值<%#Eval("xxx")%>
<>xxx<> <>[反对][赞成]<>
在gridview的RowDataBound里面
HiddenField HFcontent = e.Row.Cells[2].FindControl("HFcontent") as HiddenField;
然后在找到RadioButton rb= e.Row.Cells[2].FindControl("xxx") as RadioButton ;
然后根据HFcontent得到的值来进行给RadioButton赋值选中
 rbSelectedIndex = rb.Items.IndexOf(rb.Items.FindByValue(HFcontent.value.tostring()));
只做参考。大体思路如此
------解决方案--------------------
楼主别忘了把答案贴上来啊,让我们也学习学习,谢谢
------解决方案--------------------
<ItemTemplate>
<asp:HiddenField ID="hditem" runat="server" Value='<%# Eval("item") %>' />
<asp:RadioButtonList ID="rblidea" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
<asp:ListItem Value="1">同意</asp:ListItem>
<asp:ListItem Value="0">不同意</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
cs:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int strid = e.Row.RowIndex;
RadioButtonList rbliea = (RadioButtonList)e.Row.FindControl("rblidea");

Button btnSubVise = (Button)e.Row.FindControl("btnSubVise");
HtmlInputButton hReSubVise = (HtmlInputButton)e.Row.FindControl("ReSubVise");

if (rbliea != null)
{
if (((HiddenField)e.Row.FindControl("hditem")).Value == "3")
{
//rbliea.Items.Insert(2, "需客户核准");
rbliea.Items.Insert(2, new ListItem("需客户核准", "2"));
btnSubVise.Visible = false;
hReSubVise.Visible = false;
}
}

}
------解决方案--------------------
第一种方法:在GridView的模版列里加服务器端控件RadioButton,使用js控制单选

p>使用模版列里加RadioButton</p>
<script type="text/javascript">
function setRadio(nowRadio)
...{
var myForm,objRadio;
myForm=document.forms[0];
/**////alert(myForm);
for(var i=0;i<myForm.length;i++)
...{
if(myForm.elements[i].type=="radio")
...{
objRadio=myForm.elements[i];
/**////alert(objRadio.name);
if(objRadio!=nowRadio && objRadio.name.indexOf("GridView1")>-1 && objRadio.name.indexOf("RadioButton1")>-1)
...{
alert(objRadio.name);
if(objRadio.checked)
...{
objRadio.checked=false;