我希望在DataGrid里面加一列,是个复选框。每一行都有一个复选框。

pinglv 2004-07-23 08:45:15
应该怎么实现啊?
...全文
333 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
pinglv 2004-07-26
  • 打赏
  • 举报
回复
同志们我知道是什么原因了。

我把页面的一个EnableViewState属性改为false就OK了,可以成功取得其Checked属性了。

感谢大家热心帮助。准备结贴了。:)
yzg100 2004-07-23
  • 打赏
  • 举报
回复
谢谢,我也知道了,UP!
pinglv 2004-07-23
  • 打赏
  • 举报
回复
绑定的代码也放到if (!IsPostBack)的判断里了。
pinglv 2004-07-23
  • 打赏
  • 举报
回复
小妹快气死了。

我怎么试它的Checked属性都是false。我明明是选中了的呀。

急死了。

大家帮帮忙呀。
cjzlxy 2004-07-23
  • 打赏
  • 举报
回复
up
lufly2000 2004-07-23
  • 打赏
  • 举报
回复
to pinglv(Amanda):

是不是绑定DataGrid的方法没有放到if(!IsPostBack)里?
qiushuangqun 2004-07-23
  • 打赏
  • 举报
回复
上面说的都不错!
pinglv 2004-07-23
  • 打赏
  • 举报
回复
ccwq(中原绝代)

还要问一下啊。

我明明已经选中了checkbox。可是根踪的时候发现chb的checked属性还是false!!!

这是怎么回事啊?麻烦了。
pinglv 2004-07-23
  • 打赏
  • 举报
回复
ccwq(中原绝代)

麻烦我请问一下:
dgMsg.DataKeys[i].ToString()//这是该选项的值[要设置Datakey]
这句话是干什么的啊?
pinglv 2004-07-23
  • 打赏
  • 举报
回复
啊。会了。知道怎么添加了。

:))
akang1982 2004-07-23
  • 打赏
  • 举报
回复
模版列是肯定要用的
提交后判断所以复选框状态的办法,我相信你肯定会遇到这个问题的,下面是一个例子
private void Button1_Click(object sender, System.EventArgs e)
{


for(int i=0;i<dgClassRoom.Items.Count;i++)
{
if(((CheckBox)dgClassRoom.Items[i].Cells[1].FindControl("cbRoom")).Checked)
{
insertProperty(dgClassRoom.Items[i].Cells[0].Text,dataID,dataValue);
}
else
{
string Sql="delete from ClassRoom_ClassRoom_Property where ClassRoomID={0} and dataID='{1}'";
Sql=string.Format(Sql,dgClassRoom.Items[i].Cells[0].Text,dataID);
Data.ExecuteSql(Sql);
}
}
}
pinglv 2004-07-23
  • 打赏
  • 举报
回复
怎么在模板列添加checkbox控件啊?

麻烦大家详细讲一下啊。我是初学啊。没用过模板。

谢谢啊。
Overriding 2004-07-23
  • 打赏
  • 举报
回复
<asp:datagrid id="dgdSubject" Runat="server" AutoGenerateColumns="False" DataKeyField="subjectid"
Width="100%">
<Columns>
<asp:BoundColumn DataField="subjectname" HeaderText="科目名称" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#FFFFFF"
HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center"></asp:BoundColumn>
</Columns>
<Columns>
<asp:TemplateColumn HeaderText="选择科目" HeaderStyle-BackColor="#5482af" HeaderStyle-ForeColor="#FFFFFF"
HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkSubject" Runat="server" Checked=<%#check(container.dataitem("schoolid"))%>></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>

***********************************************************************
Public Function Check(ByVal aa As Object) As Boolean
If Not IsDBNull(aa) Then
If CStr(aa) = CStr(Session("schoolid")) Then
Return True
Else
Return False
End If
Else
Return False
End If
Return False
End Function
'保存学校的选课设置
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
'先删除记录然后在插入。
Dim cmdDelete As New SqlCommand("delete from schoolsubject where schoolid=@schoolid", cnn)
Dim strCmd As String = "insert into schoolsubject values(@schoolid,@subjectid)"
Dim cmdAdd As New SqlCommand(strCmd, cnn)
cmdDelete.Parameters.Add("@schoolid", Session("schoolid"))

Dim item As DataGridItem
Dim chk As CheckBox
Dim transaction As SqlTransaction
Try
cnn.Open()
transaction = cnn.BeginTransaction
cmdDelete.Transaction = transaction
cmdAdd.Transaction = transaction
cmdDelete.ExecuteNonQuery()
For Each item In dgdSubject.Items
chk = item.FindControl("chksubject")
If CType(chk, CheckBox).Checked = True Then
cmdAdd.Parameters.Clear()
cmdAdd.Parameters.Add("@schoolid", Session("schoolid"))
cmdAdd.Parameters.Add("@subjectid", dgdSubject.DataKeys(item.ItemIndex))
cmdAdd.ExecuteNonQuery()
End If
Next
transaction.Commit()
Catch ex As Exception
Response.Write(ex.Message)
transaction.Rollback()
Finally
cnn.Close()
End Try

End Sub
其中check是自定义的函数,来根据数据库中的值显示复选框是否选中。
inethax 2004-07-23
  • 打赏
  • 举报
回复
<Columns>
<asp:TemplateColumn HeaderText="状态" ItemStyle-Width="200">
<ItemTemplate>
<asp:CheckBox Text =" " Runat =server ></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
tongcheng 2004-07-23
  • 打赏
  • 举报
回复
在DataGrid属性生成器中添加模板列
然后编辑模版列,在该模板列中加入checkbox控件即可。

ccwq 2004-07-23
  • 打赏
  • 举报
回复
<asp:TemplateColumn HeaderText="屏蔽">
<HeaderStyle HorizontalAlign="Center" Width="30px" BackColor="#E7E7E7"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:CheckBox Runat="server" ID="cbVisible"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
CS文件处理是否选中:
for (int i = 0;i < dgMsg.Items.Count;i ++)
{
CheckBox chb = (CheckBox)dgMsg.Items[i].FindControl("cbVisible");
if(chb.Checked)
{
}
else
{
}
dgMsg.DataKeys[i].ToString()//这是该选项的值[要设置Datakey]
}
morality 2004-07-23
  • 打赏
  • 举报
回复
为DataGrid控件添加模板列,然后在模板列里面加入 CheckBox控件即可!
sequelbo 2004-07-23
  • 打赏
  • 举报
回复
同意
zhlzl 2004-07-23
  • 打赏
  • 举报
回复
加TemplateColumn, 在ItemTemplate里放一个CheckBox
Qlike 2004-07-23
  • 打赏
  • 举报
回复
添加模板列,在模板列里面加入checkbox即可。
加载更多回复(6)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

试试用AI创作助手写篇文章吧