您的位置:首页 > 编程语言 > ASP

如何循环并通过使用 ASP.NET 和 VisualC # .NET 检查 DataGrid 列中 CheckBox 控件值

2007-02-04 08:39 846 查看
通过使用 VisualC # .NET 创建 ASP.NETWeb 应用程序
1. 启动 MicrosoftVisualStudio.NET。
2. 在 文件 菜单, 指向 新建 , 然后单击 项目 。
3. 在 新建项目 对话框中, 单击 ProjectTypes@@ , 下 VisualC # 项目 , 然后单击 模板 下 ASP.NETWebApplication@@@ 。
4. 在 位置 框中, 替换 WebApplication # # 默认名称与 MyWebApp 。 如果您使用本地服务器, 您可以保留服务器名称 http://localhost 。 结果 位置 框中显示如下:
http://localhost/MyWebApp
创建示例 Web 窗体页
1. 向 ASP.NETWeb 应用程序添加新 Web 窗体如下:a. 右击项目节点在 SolutionExplorer@@, 指向 添加 , 并单击 添加 Web 窗体 。
b. 在 名称 框中, 键入 MySample.aspx , 然后单击 打开 。

2. 在属性窗口, 用于文档 pageLayout 属性更改为 FlowLayout 。 尽管您不必这样做要使用示例代码, 这将使演示文稿出现清洗。
3. 如下添加到页: DataGrid 、 按钮 和 Label 服务器控件a. 将 ASP.NET DataGrid 服务器控件从 WebForms 工具箱拖到页。
b. 在属性窗口, 将 DataGrid 控件的 ID 更改为 DemoGrid 。
c. 将 Button ASP.NET 服务器控件从 WebForms 工具箱拖到页下面 DataGrid 。
d. 在属性窗口, GetSelections , 变为 Button 控件的 ID 并然后将 Text 属性更改为 Get 选项 。
e. 将 标签 ASP.NET 服务器控件从 WebForms 工具箱拖到页下面 Button 控件。
f. 在属性窗口, ResultsInfo , 变为 Label 控件的 ID 并删除 Text 属性中的文字。

4. 切换到 HTML 视图编辑器中。 将代码添加到默认 DataGrid 模板来构造列。 结果代码对控件应显示如下:
<asp:DataGrid id="DemoGrid" runat="server" DataKeyField="CustomerID">
<Columns>
<asp:TemplateColumn HeaderText="Customer">
<ItemTemplate>
<asp:CheckBox ID="myCheckbox" Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
5. 右键单击该页, 然后单击 查看代码 。 这在编辑器中打开代码隐藏类文件。 添加下列命名空间引用到代码隐藏类文件:
using System.Data.SqlClient;
using System.Text;
6. 用以下代码替换现有代码为 Page _ Load 事件处理程序:

private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
//Create a SqlConnection object.
//Modify the connection string as necessary for your environment.
SqlConnection cn = new SqlConnection("Server=localhost;database=Northwind;UID=sa;PWD=");

SqlCommand cmd = new SqlCommand("SELECT * FROM Customers",cn);
cn.Open();
SqlDataReader reader = cmd.ExecuteReader();
DemoGrid.DataSource = reader;
DataBind();
reader.Close();
cn.Close();
}

}
7. 切换到设计视图, 并双击 GetSelections 。 这在编辑器中打开代码隐藏类文件。 用以下代码替换现有代码 GetSelections_Click 事件处理程序中:
private void GetSelections_Click(object sender, System.EventArgs e)
{
int rowCount = 0;
StringBuilder gridSelections = new StringBuilder();

//Loop through each DataGridItem, and determine which CheckBox controls
//have been selected.
foreach(DataGridItem DemoGridItem in DemoGrid.Items)
{
CheckBox myCheckbox = (CheckBox)DemoGridItem.Cells[0].Controls[1];
if(myCheckbox.Checked == true)
{
rowCount++;
gridSelections.AppendFormat("The checkbox for {0} was selected<br>",
DemoGrid.DataKeys[DemoGridItem.ItemIndex].ToString());
}
}
gridSelections.Append("<hr>");

gridSelections.AppendFormat("Total number selected is: {0}", rowCount.ToString());
ResultsInfo.Text = gridSelections.ToString();
}
验证它工作
1. 在 文件 菜单上, 单击 全部保存 以保存 Web 窗体和其他文件与项目相关联。
2. 在 VisualStudio.NET 集成开发环境 (IDE), 中 生成 菜单上单击 生成解决方案 。
3. 在 SolutionExplorer@@, 右击 WebForm 页 ( MySample.aspx ), 并然后单击 在浏览器查看 。 请注意, 网格中显示数据页。 此外, 首列中的每一行出现一个复选框。 用户可以单击以选中此复选框来标记特定行。
4. 单击以选中几个复选框的行, 然后单击 获取选项 。

页向服务器进行往返行程并 GetSelections_Click 事件处理程序, 中执行代码后, 您上一步中选定项的列表显示。 GetSelections_Click 事件处理循环通过 ASP.NET DataGrid 服务器控件, 中各个 DataGridItem 中代码确定相关 CheckBox 控件的 Checked 属性为 true , 并然后记录关联键值在该特定位置对于 DataKeys 是 DataGrid 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: