代码分析-DataGrid实现自增列、单选、多选
上一次,我们为这个DataGrid实现了添加、删除、修改、分页、动态修改内容等功能,今天再来分析一下如何为之添加自增列、单选、多选的功能。首先看一下需要在上次的基础上增加的代码:
(1)实现自增列
只需要在前台添加一个模板列,绑定ItemIndex+1就可以了
<asp:TemplateColumn HeaderText="选择">
<ItemTemplate>
<%# Container.ItemIndex+1%> </ItemTemplate>
</asp:TemplateColumn>
(2)实现单选
在上面的基础上,为这个列加一个radio
<asp:TemplateColumn HeaderText="选择">
<ItemTemplate>
<%# Container.ItemIndex+1%>
<input type=radio name="rad" value='<%# Container.ItemIndex+1%>'>
</ItemTemplate>
</asp:TemplateColumn>
radio的值也就是自增的1-PageSize
再创建一个按钮(名字叫单选),为之添加如下代码
this.Label1.Text = "选择的行号:" + Request.Form["rad"].ToString();
这样简单的几步虽然实现了显示选择的行号,但是在按下按钮以后,radio的选择是不能倍保留的,原因是这个radio不是runat=server的,我们需要再为这个页面放置一个隐藏域(如runat=server)用来在点击按钮的时候保存选择的radio,在前台添加<input type="hidden" id="rd" runat="server" name="rd">(注意,不要把这个添加到DataGrid中),然后再在刚才那个按钮中添加rd.Value = Request.Form["rad"].ToString();(如果vs.net没有为这个HtmlInputHidden申明的话你自己加上protected System.Web.UI.HtmlControls.HtmlInputHidden rd;)。到现在位置还没有完成,虽然HtmlInputHidden里面已经保存了选择的行号,但是还需要在页面Load的时候让这个radio为选择状态,修改Page_Load()为
private void Page_Load(object sender, System.EventArgs e)
{
string js = "";
js+="<script> ";
js+="function ld(){ ";
js+="for(i=0;i<document.getElementsByName('rad').length;i++) ";
js+="if(document.getElementsByName('rad')[i].value==";
补充:asp教程,数据库相关