webForm练习1(地区导航)
使用LINQ TO SQL类连接数据库。
create database mydb
go
use mydb
go
CREATE TABLE [dbo].[ChinaStates] (
[AreaCode] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[AreaName] nvarchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[ParentAreaCode] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Root] bit NOT NULL,
[Zone] smallint NOT NULL,
[NavigateURL] varchar(100) COLLATE Chinese_PRC_CI_AS,
CONSTRAINT [PK_TB_Area] PRIMARY KEY CLUSTERED ([AreaCode])
)
ON [PRIMARY]
编辑页面
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body style="height: 136px">
<form id="form1" runat="server">
<div> <asp:Button ID="Button1" runat="server" Text="在此级别添加地区" Width="120px" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="返回上级" OnClick="Button2_Click" /> </div>
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<HeaderTemplate>
<table>
<tr>
<td>地名</td> <td>编号</td> <td>上一级</td>
<td>管理</td>
<td>删除</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("AreaName") %>
</td>
<td>
<%#Eval("AreaCode") %>
</td>
<td>
<%#Eval("ParentAreaCode") %>
</td>
<td>
<asp:LinkButton ID="linkbutton1" CommandArgument='<%#Eval("AreaCode") %>' CommandName="Showxiaji" runat="server">下级地区</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="linkbutton2" CommandArgument='<%#Eval("AreaCode") %>' OnClientClick='return confirm("确定删除吗?")' CommandName="delete" runat="server">删除</asp:LinkButton>
</td> </tr>
</ItemTemplate>
<FooterTemplate>
</table> </FooterTemplate>
</asp:Repeater> <asp:Button ID="Button5" runat="server" Text="Button" />
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Literal ID="Literal2" runat="server"></asp:Literal> <asp:Panel ID="Panel1" runat="server" Visible="False"> <p>
<asp:Label ID="Label1" runat="server" Text="请输入地区:"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</p>
<p>
<asp:Label ID="Label2" runat="server" Text="请输入邮编:"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</p>
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="添加" />
<asp:Button ID="Button4" runat="server" Text="取消" OnClick="Button4_Click" /> </asp:Panel>
</form> </body>
</html>
编写cs
public DataClassesDataContext context;
public List<ChinaStates> chinastates;
protected void Page_Load(object sender, EventArgs e)
{
context = new DataClassesDataContext();
if (!IsPostBack)
{
binddata("0001"); } }
//根据parentcode查
private void binddata(string parentcode)
{
var querydata = from q in context.ChinaStates
where q.ParentAreaCode == parentcode
select q;
Repeater1.DataSource = querydata;
Repeater1.DataBind();
Literal2.Text = parentcode;//显示ParentAreaCode }
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//删除
if(e.CommandName=="delete")
{
string code = e.CommandArgument.ToString();//获取这一及编号
ChinaStates cstates = context.ChinaStates.Single(r=>r.AreaCode==code);//获取对应地区编号的数据
context.ChinaStates.DeleteOnSubmit(cstates);//删除
context.SubmitChanges();
binddata(cstates.ParentAreaCode);//显示删除后的数据 }
//显示下级
if(e.CommandName=="Showxiaji")
{
string code = e.CommandArgument.ToString();//获取这一级的唯一AreaCode
ChinaStates cstates = context.ChinaStates.Single(r => r.AreaCode == code);
Literal1.Text = cstates.ParentAreaCode;//存储这级的ParentAreaCode
binddata(code);//显示,下一级ParentCode是这级的AreaCode }
}
//添加地区
protected void Button3_Click(object sender, EventArgs e)
{ ChinaStates cdata = new ChinaStates()
{
AreaCode=DateTime.Now.Millisecond.ToString(),
AreaName=TextBox1.Text,
ParentAreaCode=Literal2.Text };
try
{
context.ChinaStates.InsertOnSubmit(cdata);
context.SubmitChanges();
binddata(Literal2.Text);
Response.Write("<script>alter('添加成功!')</script>");
}
catch(Exception ex)
{
Response.Write("<script>alter('添加失败!')</script>"); }
}
protected void Button1_Click(object sender, EventArgs e)
{
Panel1.Visible = true;
}
//返回上级
protected void Button2_Click(object sender, EventArgs e)
{
if (Literal1.Text != "0000" && Literal1.Text.Length > 0)
{
binddata(Literal1.Text);//显示上一级,ParentAreaCode
ChinaStates cdata = context.ChinaStates.Single(r=>r.AreaCode==Literal1.Text);
Literal1.Text = cdata.ParentAreaCode;
}
} }
webForm练习1(地区导航)的更多相关文章
- 关于系统首页绘制问题(ext布局+c#后台加入数据)经html输出流输出响应client
关于系统首页绘制问题,业务需求 TODO 绘制系统首页(Main.aspx) 採用的技术:functioncharts+jquery+ext布局+c#+html 解说篇:1,服务端aspx,2,服务端 ...
- EF和MVC系列文章导航:EF Code First、DbContext、MVC
对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念泉涌而出,的确犹如当头一棒不知所措.本系列文章可以帮助新手入门并熟练使用EF和MVC,有了 ...
- 美团HD(3)-加载分类导航数据
DJHomeViewController.m /** 设置导航栏左侧内容 */ - (void)setupLeftNavItem { // Logo UIImageView *logoView = [ ...
- 【开源】OSharp框架解说系列(1):总体设计及系列导航
系列文章导航 [开源]OSharp框架解说系列(1):总体设计 [开源]OSharp框架解说系列(2.1):EasyUI的后台界面搭建及极致重构 [开源]OSharp框架解说系列(2.2):EasyU ...
- ul、li实现横向导航按钮
好久没写博客了,主要是懒得呼气都不想呼,上周分给我一个新的任务,就是自己新建一个系统,快速极限开发,虽然之前自己也做过小的系统,但毕竟是自己做,随着自己的心意做,没有做其他的限制等,现在呢是给公司做, ...
- iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用
一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPicke ...
- webform页面传值和删除修改
一.webform跨页面传值1.内置对象地址栏数据拼接 QueryString 优点:简单好用:速度快:不消耗服务器内存. 缺点:只能传字符串:保密性差(调转页面后在地址栏显示):长度有限.响应请求对 ...
- ASP.NET中 WebForm 窗体控件使用及总结【转】
原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...
- MDNavBarView下拉导航菜单(仿美团导航下拉菜单)
说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用.感觉特累人.不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下, ...
随机推荐
- 字体Unicode编码
客专家福利 有奖试读&征文——我们在互联网上奋斗的故事 10月推荐文章汇总 加入“技术热心人”,赢丰厚奖品 html-中文字体在CSS中的显示(Unicode编码) ...
- 更新新网卡驱动,修复win7雷凌网卡Ralink RT3290在电脑睡眠时和启动网卡时出现蓝屏netr28x.sys驱动文件错误
更新新网卡驱动,修复win7雷凌网卡Ralink RT3290在电脑睡眠时和启动网卡时出现蓝屏netr28x.sys驱动文件错误 我的本本是win7,雷凌网卡Ralink RT3290 802.1 ...
- border-image(转载)
本文转自:http://www.zhangxinxu.com/wordpress/2010/01/css3-border-image%E8%AF%A6%E8%A7%A3%E3%80%81%E5%BA% ...
- cocos2d-html5 让图层阻挡下层触碰事件
目前最新版本是3.8.1,基本上基于3.x之后的都可以这样处理: 给当前图层一个成员变量:_touchListener 一个成员方法: onTouchBegan:function(touch,even ...
- Kerberos安装及使用
转载请注明出处:http://www.cnblogs.com/xiaodf/ 2. 安装 Kerberos2.1. 环境配置 安装kerberos前,要确保主机名可以被解析. 主机名 内网IP 角色 ...
- PAT (Basic Level) Practise:1038. 统计同成绩学生
[题目链接] 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最 ...
- LintCode First Position of Target
找指定target的最左位置. class Solution { /** * @param nums: The integer array. * @param target: Target to fi ...
- windows Apache+cgi的配置方法
1. 配置config line 119 :打开#LoadModule rewrite_module modules/mod_rewrite.so line 192 :<Directory / ...
- Objective-c——UI基础开发第十一天(UICollectionView)
一.知识点 1.UICollectionView的dataSource .delegate 2.UICollectionView多组数据和单组数据的展示 3.UICollectionView.UICo ...
- POJ 1094 (TopoSort)
http://poj.org/problem?id=1094 题意:该题题意明确,就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列.是典型的拓扑排序,但输出格式上确有三种形式: 1.该字母序 ...