问题描述
一个是我想单击这个RADIOBUTTON触发一个事件,请问怎么点击的时候获得GRIDVIEW这行的DataKeyNames值还有就是我想一列RADIOBUTTON属于同一个组,怎么咙
解决方案
解决方案二:
up
解决方案三:
UP
解决方案四:
你用的是2005吗?如果是就用raidobuttonlist然后用模板方法做
解决方案五:
GridView实现了INamingContainer,要使其Item中的RadioButton(服务器控件)在同一个组,不知道怎么做,请高手指教!如果不用服务器控件,用<inputtype="radio"/>可以实现在同一组,不过要获取该行的DataKey,可能有些力不从心。
解决方案六:
只能用服务器控件,我要上来绑定数据的
解决方案七:
up
解决方案八:
RadioButton不用GroupName,可以实现多选一的效果。不过比较麻烦我的思路是这样的:RadioButton的选择状态发生变化的时候,保存发生改变的RadioButton所在GridViewRow的索引(RowIndex),保存在ViewState中,然后重新绑定GridView,在绑定的时候,根据GridView的OnItemDataBound事件,判断那一行的RadioButton应该选中。楼主请参考一下://RadioButton的CheckedChanged事件protectedvoidrb_CheckedChanged(objectsender,EventArgse){RadioButtonrb=senderasRadioButton;if(rb!=null){GridViewRowrow=rb.ParentasGridViewRow;//row.FindControl("")获取该行中其他控件的值//...//把行index保存在ViewState中ViewState["rowIndex"]=row.ItemIndex;}BindData();//重新绑定GridView}//GridView的OnRowDataBound事件protectedvoidBound(objectsender,GridViewRowEventArgse){if(ViewState["rowIndex"]!=null){intindex=int.Parse(ViewState["rowIndex"].ToString());if(e.Row.RowIndex==index){RadioButtonrb=e.Row.FindControl("rb")asRadioButton;if(rb!=null)rb.Checked=true;}}}
解决方案九:
在GridView里设置一模板列把RadioButton放在里面在GridView的RowCommand里写东东没必要想LZ想的那么麻烦
解决方案十:
加上CommandName和CommandArgs两个属性,CommandName="click"CommandArgs=DataKeyNames在SelectedIndexChangeg事件里获得CommandArgs的值。。if(e.CommandName=="click"){stringstr=e.CommandArgs;}
解决方案十一:
谢谢JGood不过我是要更新后台数据,所以要知道DATAKEYNAMES,否则我不知道怎么更新了。至于后面一个问题,可以忽略
解决方案十二:
知道了RowIndex就可以获取DataKey了GridView.DataKeys[e.RowIndex].Values[""];而在ViewState中已经保存了RowIndex
解决方案十三:
GridViewRow没有ItemIndex这个属性。我对这个类不太了解,不清楚该怎么利用,还请说的清楚,谢谢
解决方案十四:
你把我给你做的代码沾过去试试看是不是你要的效果,连接的是SQLSERVER2000默认库pubs:HTML:--------------------------------------------------------------------------------<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>无标题页</title></head><body><formid="form1"runat="server"><div><asp:GridViewID="GridView3"runat="server"AutoGenerateColumns="False"DataKeyNames="au_id"OnRowDataBound="GridView3_RowDataBound"Style="position:relative"Width="522px"><Columns><asp:BoundFieldDataField="au_id"HeaderText="ID"/><asp:BoundFieldDataField="au_fname"HeaderText="名"/><asp:TemplateFieldHeaderText="单选"><ItemTemplate><inputid="Radio1"value="<%#DataBinder.Eval(Container.DataItem,"au_id")%>"name="select"type="radio"/><asp:LabelID="Label1"runat="server"Text='<%#DataBinder.Eval(Container.DataItem,"au_lname")%>'></asp:Label></ItemTemplate></asp:TemplateField></Columns></asp:GridView><asp:ButtonID="Button1"runat="server"Style="position:relative"Text="提交"OnClick="Button1_Click"/></div></form></body></html>C#:-------------------------------------------------------------------SqlConnectioncon;SqlCommandcom;SqlDataAdapterda;SqlDataReaderdr;DataSetds;protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){}Bind();}publicvoidBind(){con=newSqlConnection("server=.;uid=sa;pwd=;database=pubs");da=newSqlDataAdapter("select*fromauthors",con);ds=newDataSet();da.Fill(ds);GridView3.DataSource=ds;GridView3.DataBind();}protectedvoidGridView3_RowDataBound(objectsender,GridViewRowEventArgse){//if(e.Row.RowType==DataControlRowType.DataRow)//{//RadioButtonrbtn=newRadioButton();//rbtn.Text="单选";//rbtn.GroupName="select";//rbtn.AutoPostBack=true;//e.Row.Cells[2].Controls.Add(rbtn);//}}protectedvoidButton1_Click(objectsender,EventArgse){stringid=Request.Form["select"].ToString();Response.Write("您选择的ID是:"+id);}
解决方案十五:
反正我上面的做法也是完成了你要求的功能,JGood()()信誉:100说的没错,HTML控件可以完成,web控件groupname就算一样,但他选择时还是不能互斥。。