怎么在gridview里加一个复选框?还是每行加一个?
使用TemplateFiled就可以了啊

解决方案 »

  1.   

    需要放checkbox的列转换为TemplateFile列。
    EditTemplate是点击编辑后出现的模板(这个应该知道吧?)。
    ItemTemplate是正常显示的模板
      

  2.   

    我还以为每一个asp.net培训学校都会把5、6年前的Scott Mitchell的系列文章作为必修课程呢,原来还有没有看过的啊。其实照抄就行了:http://blog.csdn.net/heker2007/article/details/1547371作者写那些东西的时候,微软还没有asp.net ajax。所以作者没有涉及ajax知识。现在使用ajax甚至RIA开发web应用,已经完全不一样了。但是对于初学asp.net的人,认真地模仿scott mitchell的书中每一个代码例子,是非常必要的。
      

  3.   

    用 Listview 更方便点。
            protected void CateS_ItemDeleting(object sender, ListViewDeleteEventArgs e)     
            {
                int id = int.Parse(LV_CategoryS.DataKeys[e.ItemIndex].Value.ToString());  //获取listview定义的datakeyname所设置的ID值
                if (BLL.Category.DeleteCategoryS(id) > 0)
                {
                    getCategoryS();
                }
                else
                {
                    BLL.Msg.ShowMessage("错误", "操作失败!", 1);
                }
            }
    复选框方式<ItemTemplate>
                <div class="LvItems">
                    <div class="Row_Title"><a class="Link329" href="News_Edit.aspx?id=<%#Eval("ID")%>"><%# Eval("CN_Title")%></a></div>
                    <div class="Row_Ctrl2">
                        <asp:CheckBox ID="ChkSelect" runat="server" />
                        <asp:Label ID="CheckBoxID" runat="server" Text='<%#Eval("ID")%>' Visible="false"></asp:Label>
                    </div>
                </div>
            </ItemTemplate><asp:Label ID="CheckBoxID" runat="server" Text='<%#Eval("ID")%>' Visible="false"></asp:Label>
    里就是对应 CheckBox 的数据ID值后台代码protected void DeleteNews_Click(object sender, EventArgs e)
            {
                string DeleteStr = "";
                for (int i = 0; i < NewsList.Items.Count; i++)
                {
                    CheckBox chk = (CheckBox)NewsList.Items[i].FindControl("ChkSelect");
                    if (chk != null && chk.Checked == true)
                    {
                        Label CKID = (Label)NewsList.Items[i].FindControl("CheckBoxID");
                        DeleteStr = DeleteStr + CKID.Text + ",";
                    }
                }
                if (DeleteStr.Length < 1)
                {
                    BLL.Msg.Msgbox("请选择要删除的项!");
                    return;
                }
                DeleteStr = DeleteStr.Substring(0, DeleteStr.Length - 1);//去掉最后一个,
                int Dels = BLL.News.DeleteNews(DeleteStr);
                if (Dels > 0)
                {
                    if (Convert.ToInt32(BLL.Pages.getCount(TableName, whereStr)) / this.AspNetPager1.PageSize < this.AspNetPager1.CurrentPageIndex)
                    {
                        this.AspNetPager1.CurrentPageIndex = this.AspNetPager1.CurrentPageIndex - 1;
                    }
                    BindListView();
                }
                else
                {
                    BLL.Msg.Msgbox("删除失败!");
                }
            }
      

  4.   

    现在使用ajax甚至RIA开发web应用,已经完全不一样了。你应该学习jQuery或者silverlight等。很遗憾微软asp.net项目组实际上在5年前,在推出了划时代的UpdataPanel(以及在客户端ScriptManager中轻量级地直接引用asmx)以后,就放弃了真正的ajax。把一个jQuery扔到asp.net开发环境中而了事。所以对于ajax编程,我只能推荐你忘掉asp.net,而从javascript/jQuery去重新学习瘦web客户端编程。而web RIA编程则仍然可以使用微软的silverlight。例如可以访问一个开源的silverlight控件项目
    http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html
    看看silverlight编写企业应用程序的能力。相比于asp.net实在是天壤之别。
      

  5.   

    jQuery EasyUI 做后台感觉不错。
      

  6.   

    refer:
    http://www.cnblogs.com/insus/archive/2011/06/30/2094151.html
    http://www.cnblogs.com/insus/articles/2029383.html
    http://www.cnblogs.com/insus/articles/1413740.html
      

  7.   

    我看了一下您推荐的代码,我有个问题,为什么我的cb.checked老是flase不管选没有选,如果开始的时候把checked属性设为true,那就一直是true,勾掉也不行求教