关于gridview的选取每一行的ID问题

i1765957217 2012-09-16 11:38:34
请教各位大神一下,我是下面这样绑定gridview的,
List<FieldInspectionNewStaffModel> liststaffmodel = new List<FieldInspectionNewStaffModel>();
liststaffmodel = staffbll.getliststaffmodel();
this.gvShowStaff.DataSource = liststaffmodel;
this.gvShowStaff.DataKeyNames = new string[] { "Inpection_Staff_ID" };
this.gvShowStaff.DataBind();
怎么在gridview里加一个复选框,点击复选框,然后获得被选行的ID,然后统一插入到一个表里(checkbox能实现也行),表面是这样的
<asp:GridView ID="gvShowStaff" runat="server"
AutoGenerateColumns="False"
onselectedindexchanged="gvShowStaff_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="Staff_Name" HeaderText="姓名" />
<asp:BoundField DataField="Staff_Depart" HeaderText="部门" />
<asp:BoundField DataField="Staff_Email" HeaderText="邮箱" />
<asp:BoundField DataField="Staff_Telephone" HeaderText="电话" />
<asp:BoundField DataField="Staff_Des" HeaderText="职位" />
<asp:CommandField HeaderText="选择" ShowSelectButton="True" />
</Columns>
</asp:GridView>
大神们,跪求你们的回答。。。。。
...全文
156 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
现在使用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实在是天壤之别。
  • 打赏
  • 举报
回复
Banianer 2012-09-16
用 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("删除失败!");
}
}
  • 打赏
  • 举报
回复
我还以为每一个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的书中每一个代码例子,是非常必要的。
  • 打赏
  • 举报
回复
xiedu414 2012-09-16
需要放checkbox的列转换为TemplateFile列。
EditTemplate是点击编辑后出现的模板(这个应该知道吧?)。
ItemTemplate是正常显示的模板
  • 打赏
  • 举报
回复
孟子E章 2012-09-16
怎么在gridview里加一个复选框?还是每行加一个?
使用TemplateFiled就可以了啊
  • 打赏
  • 举报
回复
i1765957217 2012-09-16
我看了一下您推荐的代码,我有个问题,为什么我的cb.checked老是flase不管选没有选,如果开始的时候把checked属性设为true,那就一直是true,勾掉也不行。。。求教。。。[Quote=引用 3 楼 的回复:]

我还以为每一个asp.net培训学校都会把5、6年前的Scott Mitchell的系列文章作为必修课程呢,原来还有没有看过的啊。其实照抄就行了:

http://blog.csdn.net/heker2007/article/details/1547371

作者写那些东西的时候,微软还没有asp.net ajax。所以作者没有涉及ajax知识。

现在使用ajax甚至RIA开发w……
[/Quote]
  • 打赏
  • 举报
回复
i1765957217 2012-09-16
完全是自学。。。。没有参加什么培训学校。。。而且是菜鸟。。。[Quote=引用 3 楼 的回复:]

我还以为每一个asp.net培训学校都会把5、6年前的Scott Mitchell的系列文章作为必修课程呢,原来还有没有看过的啊。其实照抄就行了:

http://blog.csdn.net/heker2007/article/details/1547371

作者写那些东西的时候,微软还没有asp.net ajax。所以作者没有涉及ajax知识。

现在使用ajax甚至RIA开发w……
[/Quote]
  • 打赏
  • 举报
回复
Banianer 2012-09-16
jQuery EasyUI 做后台感觉不错。
  • 打赏
  • 举报
回复
发帖
.NET社区

6.0w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
加入社区
帖子事件
创建了帖子
2012-09-16 11:38
社区公告

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

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