标签:
杂谈 |
标签:
转载 |
思绪漫飞
时常认为,人生,在回忆、活着和展望中延续,终在漫思中消散,不过是风月一梦遥。一年四季不停的轮回,抹去的是一代代没有因果的血泪,带来的是一代代没有休止的酸甜,类似的符号,演绎出了太多的风花雪月。
春风春淡春花黄,那堪夏日助凄凉。带着自身无数个明日的梦想,一天天埋葬于漫想那殇,终被琐碎打破。
牵肠挂肚动心弦,谁家深院无风飏。是想娇花照水方见自身容貌,瞥见弱柳也才佛风,便也告知灵魂心安理得,呜呼,却忘却了自身的归路。
这个初夏,干旱异常,习惯施予的江河湖泊,也来与禾苗争夺乳汁,这时却忘了自己的角色和职责,才知晓,站在生存的边沿,给予还需要很大勇气和底气的。幸好,天公与大地开个玩笑而已,这几天接连雨至,倒也凉爽了几分。看那边,芳气撩人,绿树清溪,飞花逐水流,云散觅闲愁,饰冰清玉韵,观夏花夏至,不经意的思绪漫漫。
鸟鸣,在夏天的雨后还是多见的,尽管条件艰苦,令不被人关注,它们自由一番天地,不如世外桃源的清静,倒有里面的情致雅韵。听着叽叽喳喳的欢声笑语,忘乎所以,似乎在告诉着我什么。
欲洁何曾洁,心空未必空,千里东风一梦遥,绣阁烟霞风月萧。云雨闹妖娆,粲若明霞,莹润如酥。红尘、脱俗,总是分不开的一对,喜欢把自我与红尘脱开,不为别的,只为给心灵以抚慰,然一直于红尘作伴,也不为别的,只为给心灵一个答案。看红尘、叹红尘、归红尘,就如所说,从那里来,总归之那去,总免不了知俗还俗。沿走在熙熙攘攘的都市边沿,还是隐身于山野江河,都会要求自身心若止水,静观这一切,给心灵一片宁静,但随之被思绪漫飞而去。思绪漫飞,总在美好或意乱时起航,带着足与不足、知与不知、得与不得再行归去,不同的环境,不同的心灵释放而已。心灵,是在释放时才感觉到存在的东西,免不了以脱俗做下盾牌,因为自身是世上独一无二,就应该有着与众不同的东西。
感念红尘,若总结人生一般模棱,以偌大乾坤定钟情般粗犷,却又要荷叶浮萍恋旧音般细微。悠悠漫漫,四季轮回,结果是人生的远去,红尘的导航。
感念红尘,红尘太多舛,世事茫茫难自料,九曲回肠曲畅饮于坎坷高歌,演绎了几千年的交替轮回、恩怨是非,真假善恶把这红尘燃烧,带着思绪漫飞。
感念红尘,红尘太从容,波涛拍浪难动容,平静下面太多喜怒哀乐,点滴之间让人割舍不下,情感于其中纠结、交融,日以继夜想把红尘点燃,带着思绪漫飞。
于红尘,芳芷之巅,翠影红霞九万里,扶栏直上云霄上,遥看鸟飞彩云芙蓉面,山水茫茫入我心。时常,只想闲看云卷云舒,风儿来袭,鸟儿鸣歌,草儿曼舞,以便释解那情真真兮难求,志切切兮路漫。不料被生存所累,谁叫脱俗也归于生存那?!更何况自己生命不仅是属于自己的那!
深林烟霞忽已暝,长风逸兴送春风。独处在每个皎洁明月的夜晚,都会有一种归去来兮的感念,无言的承载,走入沉默的心怀,神悦在相思之巅,洒脱饰深夜难眠,观日出日落,看月圆月缺,与思绪无语的携同,投进释解的不宣,感人聚人散,知人来人往。
深夜,于这人生,对望月儿,思绪白天那万物峥嵘,芳兰幽芷,遍地相思泪,此时的天地仅有黑色而已,隐盖了多少浮华?!思来,万物不过都是得失一念、静动相生,如此而勾起百日径,悠兮叹兮。
漫思是非得失,跟随生命在四季重演,年轮的增添知晓绿叶换旧叶,黯然回首,暗香疏影般沧海桑田,池塘荷露,清风明月似绿杨垂柳;晓风残月,缠绵婉弱如文物韬略,意绵绵兮无怨,念阔阔兮无悔。
思绪漫飞,肯定的是自身,否定的也是自身,就是不晓得衡量标准的错对与否,是红尘错了,还是自己错了,而自身又在红尘中,对错也许只是一念。拿红尘的标准,来衡量红尘是很困难的,红尘错,自身也不会心安;红尘对,自身就会不知所安,而后归于尘土、销声匿迹,没有谁会怜惜或在意自身的去留。就用红尘标准来衡量自己吧,只因自己也是一个红尘之人,或对或错,给红尘一个交代,给自身游荡的灵魂一个去处判定。
尔后,在四季轮回中观看一切静的,或者动的东西。
尔后,在漫思中消散。
标签:
杂谈 |
在datalist的项模版中添加一行两列的表格,第一个单元格中放textbox1,第二个单元格中放Button1,将Button1的commandname设置为shanchu结束模板编辑. 将datalist的datakeyfield设置为productid.找到datalist的itemcommand事件双击进去写代码:
if (e.CommandName == "shanchu")
{
int i =
Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);//取鼠标当前行产品索引
SqlConnection conn = new
SqlConnection("server=.;uid=sa;pwd=;database=Northwind");
conn.Open();
SqlCommand cmd= new SqlCommand("delete from
products where productid="+i, conn);
int h = cmd.ExecuteNonQuery();
if (h > 0)
Response.Write("<script>alert('success')</script>");
else
Response.Write("<script>alert('lost')</script>");
conn.Close();
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from products",
conn);
DataSet ds = new DataSet();
sda.Fill(ds);
conn.Close();
this.DataList1.DataSource = ds;
this.DataList1.DataBind();
}
html中textbox1的产品名称的绑定:
<asp:TextBox ID="TextBox2" runat="server" Text='<%# eval_r("productname") %>'></asp:TextBox>
方法二:
在datalist的deletecommand事件中写:(前提是Button1的commandname设置为delete(与系统默认的delete方法同名),且datalist的datakeyfield为productid)
int i =
Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);//取鼠标当前行产品索引
SqlConnection conn = new
SqlConnection("server=.;uid=sa;pwd=;database=Northwind");
conn.Open();
SqlCommand cmd= new SqlCommand("delete from
products where productid="+i, conn);
int h = cmd.ExecuteNonQuery();
if (h > 0)
Response.Write("<script>alert('success')</script>");
else
Response.Write("<script>alert('lost')</script>");
conn.Close();
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from products",
conn);
DataSet ds = new DataSet();
sda.Fill(ds);
conn.Close();
this.DataList1.DataSource = ds;
this.DataList1.DataBind();
Response.Write(((TextBox)e.Item.FindControl("TextBox2")).Text);//输出当前选中删除行的产品名(textbox2中绑定的是productname)
http://hi.baidu.com/xuejianxiyang/album/item/ac24ffd83074a81a33fa1ccc.html
标签:
杂谈 |
删除可以归纳为两种方法实现,一种就是嵌套复选框,另一种则是嵌套linkButton之类的按钮或超链接来实现。
1、首先介绍嵌套LinkbButton的方法:
以下是页面文件:
<asp:DataList ID="DataList1" runat="server"
OnItemDataBound="DataList1_ItemDataBound"
OnItemCommand="DataList1_ItemCommand"
DataKeyField="AREID">
<HeaderTemplate>
<thead>
<th scope="col">
<label>选择</label><input
id="boxSelect" type="checkbox"
onclick="javascript:doSelectAllBox(<%=DataList1.Items.Count%>,this)"
/>
</th>
<%--<th
scope="col">编码</th>--%>
<th
scope="col">标题</th>
<th
scope="col">代码</th>
<%--<th
scope="col">左极键值</th>
<th
scope="col">右极键值</th>--%>
<th
scope="col">上级目录</th>
<%--<th
scope="col">创建时间</th>
<th
scope="col">更改时间</th>--%>
<th
scope="col">当前状态</th>
<th
scope="col">操作</th>
</thead>
</HeaderTemplate>
<FooterTemplate>
</FooterTemplate>
<ItemTemplate>
<tr>
<td
align="center">
<input
id="checkBox<%#Container.ItemIndex+1%>"
name="IsSelect" type="checkbox"
value='<%#eval_r("AREID")%>'
/>
</td>
<%--<td>--%>
<asp:Label ID="lblAREID" runat="server"
Text='<%# eval_r("AREID") %>'
Visible="false"></asp:Label>
<%--</td>--%>
<td>
<asp:Label ID="lblTitle" runat="server"
Text='<%# eval_r("Title")
%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCode" runat="server"
Text='<%# eval_r("Code")
%>'></asp:Label>
</td>
<%--<td>
<asp:Label ID="lbllft" runat="server"
Text='<%# eval_r("lft")
%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblrgt" runat="server"
Text='<%# eval_r("rgt")
%>'></asp:Label>
</td>--%>
<td>
<asp:Label ID="lblParentID" runat="server"
Text='<%# eval_r("ParentID")
%>'></asp:Label>
</td>
<%--<td>
<asp:Label ID="lblCreatedDate" runat="server"
Text='<%# eval_r("CreatedDate")
%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblModifiedDate" runat="server"
Text='<%# eval_r("ModifiedDate")
%>'></asp:Label>
</td>--%>
<td>
<asp:Label ID="lblCurState" runat="server"
Text='<%# eval_r("CurState")
%>'></asp:Label>
</td>
<td
align="center" style="width:80px;">
<a href='<%#
String.Format("javascript:window.location.href=\"?Action=Modify&AREID={0}\"",eval_r("AREID"))
%>'>修改</a>
<%--<a href='<%#
String.Format("javascript:window.location.href=\"?Action=Delete&AREID={0}\"",eval_r("AREID"))
%>'>删除</a>--%>
<asp:LinkButton ID="lbtDel" Text="删除"
CommandName="Del" runat="server" OnClientClick="javascript:return
confirm('确定删除所选吗?')"></asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:DataList>
<div class="controlbar">
<asp:Button ID="btnDelete" runat="server"
Text="删除所选" CausesValidation="False"
OnClick="btnDelete_Click"
OnClientClick="javascript:return
confirm('确定删除所选吗?')"/>
<asp:Button ID="btnAdd" runat="server" Text="新增"
OnClick="btnAdd_Click" Width="60px" />
</div>
同样DataKeyField="AREID" ,ARRID必须是主键
后代码文件就必须写在DataList1_ItemCommand事件中了
忽略其中不必要的逻辑。
代码如下:
protected void DataList1_ItemCommand(object
source, DataListCommandEventArgs e)
{
if (e.Item.ItemIndex != -1 &&
e.CommandName == "Del")
{
int id =
Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex].ToString());
//判断此列能否删除
if (Area_BLL.GetIsRoot(id) == false)
{
if (Area_BLL.Create_AreaDelete(id) > 0)
{
ScriptHelper.Alert_Redirect(HttpContext.Current, "删除成功!",
"/Common/Area.aspx");
return;
}
else
{
ScriptHelper.Alert_Redirect(HttpContext.Current, "删除失败!",
"/Common/Area.aspx");
return;
}
}
else
{
ScriptHelper.Alert_Redirect(HttpContext.Current, "此目录不允许删除!",
"/Common/Area.aspx");
return;
}
}
}
以上是第一种删除的方法
2、页面文件见上面,本文中的复选框是html控件,用FindControl的方法是找不到的,假如要使用此方法,复选框必须为服务器控件。此案例中可以用post方法提交,提交到本页或其他页面,用document.form[0].复选框的名字来获取所要删除的行,将获取到的数值放到数组中,然后进行操作。
假如使用服务器控件的复选框则在DataList1_ItemCommand事件中进行操作。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lltse85/archive/2009/01/08/3734582.aspx
标签:
杂谈 |
标签:
杂谈 |
asp.net母版页使用详解
时间:2010-11-02 14:51:17来源:网络 作者:未知 点击:900次
母版页(扩展名是.master)
它的使用跟普通的页面一样,可以可视化的设计,也可以编写后置代码。与普通页面不一样的是,它可以包含ContentPlaceHolder控件,ContentPlaceHolder控件就是可以显示内容页面的区域。
代码如下:
<%@ Maste
母版页(扩展名是.master)
它的使用跟普通的页面一样,可以可视化的设计,也可以编写后置代码。与普通页面不一样的是,它可以包含ContentPlaceHolder控件,ContentPlaceHolder控件就是可以显示内容页面的区域。
代码如下:
<%@ Master Language="C#"
CodeFile="MasterPage.master.cs"
Inherits="MasterPage" %>
......
<form id="form1"
runat="server">
<div>
<asp:contentplaceholder id="ContentPlaceHolder1"
runat="server">
</asp:contentplaceholder>
</div>
</form>
......
注意:
1、这里的声明指示符是“<%@ Master...%>”
2、其内部包含<asp:contentplaceholder......>控件
内容页(扩展名是.aspx)
在建立内容页面的时候,在“添加新项”对话框中要选中“选择母版页”复选框。这样建立的页面就是内容页面,内容页面在显示的时候会把母版面的内容一起以水印淡化的形式显示出来,而在母版页中的ContentPlaceHolder控件区域会被内容页面中的Content控件替换,程序员可以在这里编写内容页面中的内容。
代码如下:
<%@ Page Language="C#"
MasterPageFile="~/MasterPage/MP.master"
CodeFile="Show1.aspx.cs" Inherits="MasterPage_Show1"
Title="Untitled Page" %>
<asp:Content ID="Content1"
ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
</asp:Content>
注意:
1、这里的声明指示符中多了一项MasterPageFile="~/MasterPage/MP.master",这一项是在创建内容页面时根据“选择母版页”复选框的选中情况生成的。它指明了该页是内容页面,也指明了该内容页面的母版页是哪个页面。
2、“<asp:Content
......>”就是要在其中显示的内容。
一、在母版页中编写后台代码,访问母版页中的控件:
与普通的aspx页面一样,双击按钮即可编写母版页中的代码
二、在内空页面中编写后台代码,访问内容页面中的控件:
与普通的aspx页面一样,双击按钮即可编写母版页中的代码
三、在内容页面中编写代码访问母版页中的控件:
在内容页面中有个Master对象,它是MasterPage类型,它代表当前内容页面的母版页。通过这个对象的FindControl方法,我们可以找到母版面中的控件,这样就可以在内容页面中操作母版页中的控件了。
TextBox txt =
(TextBox)((MasterPage)Master).FindControl("txtMaster");
txt.Text = this.txtContent1.Text;
四、在内容页面中编写代码访问母版页中的属性和方法:
仍可能通过Master对象进行访问,只不过在这里要把Master对象转换成具体的母版页类型,然后再调用母版页中的属性和方不法。
这里要说明的是:母版页中要被内容页面调用的属性和方法必须是Public修改的。否则无法调到。
假设母版页中有下面的属性和方法:
public string TextValue
{
get
{
return this.txtMaster.Text;
}
set
{
this.txtMaster.Text = value;
}
}
public void show(string str)
{
txtMaster.Text = str;
}
在内容页面中可以通过下代的代码来实现对母版页中方法的调用:
((MasterPage_MP)Master).show(this.txtContent1.Text);
((MasterPage_MP)Master).TextValue = this.txtContent1.Text;
五、在母版页中访问内容页面的控件:
在母版页中可以通过在ContentPlaceHolder控件中调用FindControl方法来取得控件,然后对控件进行操作。
((TextBox)this.ContentPlaceHolder1.FindControl("txtContent1")).Text
= this.txtMaster.Text;
六、在母版页中访问内容页面中的方法和属性:
在母版页中调用子页面中的属性和方法有点难度,因为我们无法像上一步中那样通过FindControl来找到方法和属性。
于是我们想到在母版面的声明指示符中加入下面的代码:
<%@ Reference Page="~/MasterPage/Show1.aspx"
%>
在运行的时候回发现有错误,错误的内容是“无法实现循环引用”。这是因为默认在子页面中引用了母版页,你也就不能再在母版页中引用子页面了。
我在网上也没找到更好的解决方法,但这使我们想起C#是的“反射”,它可以使我们动态获取页面对象,并且可以调用它的属性和方法。
代码如下:
Type t = this.ContentPlaceHolder1.Page.GetType();
PropertyInfo pi = t.GetProperty("ContentValue");
//获取ContentValue属性
pi.SetValue(this.ContentPlaceHolder1.Page,this.txtMaster.Text,null);
//给属性赋值
MethodInfo mi = t.GetMethod("SetValue"); //获取SetValue()方法
object[] os = new object[1];
//建造输入参数
os[0] = txtMaster.Text;
mi.Invoke(this.ContentPlaceHolder1.Page,
os);
//调用SetValue方法
七、在有多个内容页面使用母版面的情况下,在母版页中根据不同的内容页面实现不同的操作
在母版页中可以加入多个不同的内容页面,但在设计期间,我们无法知道当前运行的是哪个内容页面。所以只能通过分支判断当前运行的是哪个子页面,来执行不同的操作。这里也用到了反射的知识。
代码如下:
string s =
this.ContentPlaceHolder1.Page.GetType().ToString();
//取出内容页面的类型名称
if (s == "ASP.default17_aspx")
//根据不同的内容页面类型执行不同的操作
{
((TextBox)this.ContentPlaceHolder1.FindControl("TextBox2")).Text =
"MastPage";
}
else if (s == "ASP.default18_aspx")
{
((TextBox)this.ContentPlaceHolder1.FindControl("TextBox2")).Text =
"Hello MastPage";
}
八、在母版面与内容页面中JS代码的操作
在母版页或内容页面中的控件运行之后会自动生成ID,如文本框的ID是txtContent1,在运行之后ID会自动变为ctl00_ContentPlaceHolder2_txtContent1,name属性会变为ctl00$ContentPlaceHolder2$txtContent1。
在JS代码中,我们用document.getElementByIdx_x()方法,根据id取得控件对象的时候,应当使用ctl00_ContentPlaceHolder2_txtContent1这个ID名,否则会产生“未找到对象”的异常。
母版页运行机制
母版页仅仅是一个页面模板,单独的母版页是不能被用户所访问的。单独的内容页也不能够使用。母版页和内容页有着严格对应关系。母版页中包含多少个ContentPlaceHolder控件,那么内容页中也必须设置与其相对应的Content控件。当客户端浏览器向服务器发出请求,要求浏览某个内容页面时,ASP.NET引擎将同时执行内容页和母版页的代码,并将最终结果发送给客户端浏览器。
母版页和内容页的运行过程可以概括为以下5个步骤。
(1)用户通过键入内容页的URL来请求某页。
(2)获取内容页后,读取@
Page指令。如果该指令引用一个母版页,则也读取该母版页。如果是第一次请求这两个页,则两个页都要进行编译。
(3)母版页合并到内容页的控件树中。
(4)各个Content控件的内容合并到母版页中相应的ContentPlaceHolder控件中。
(5)呈现得到结果页。
母版页和内容页事件顺序
(1)母版页中控件Init事件;
(2)内容页中Content控件Init事件;
(3)母版页Init事件;
(4)内容页Init事件;
(5)内容页Load事件;
(6)母版页Load事件;
(7)内容页中Content控件Load事件;
(8)内容页PreRender事件;
(9)母版页PreRender事件;
(10)母版页控件PreRender事件。
(11)内容页中Content控件PreRender事件。
使用母版页的优点:
(1)有利于站点修改和维护,降低开发人员的工作强度
(2)有利于实现页面布局
(3)提供一种便于利用的对象模型
本篇文章来源于:开发学院 http://edu.codepub.com
原文链接:http://edu.codepub.com/2010/1102/26897.php
昨天和老师一起吃饭,从他们的谈话中可以了解到,不管做什么职业都会遇到自己的难处。但是不管怎样,他们都还是坚持着学习,又是甚至还坚持学习到晚上十二点。然而我们这些职业学习者每天的学习时间都没有他们的多,甚至最近本的时间都不能保证,二十整天在那里偷懒,上课开小差,可会不会去主动学习。现在大二了,面临着一个严重的问题,就是我们要出去找工作了,不能什么事情都得随自己的意去做。从他们老师这次去香港学习中得知一个理念,那就是“对自己不感兴趣事情的学习能力”所以我们要好珍惜这美好的学习时间。让我在这有限的学生时代能够学到跟多。
我这是第一次在我的新浪博客上写文章了 ,这也是我第一参加参加网络营销能力秀,我的心非常高兴。也非常激动。这次比赛非常激烈,这样也更激励着我更加努力 ,不懈怠,不轻视,天外有天,人外有人,我虽然不是最好的,最强的 ,但我要通过我的努力 争取做到最好 ,不能让自己的努力白费。我也希望我在我的世界里 能够认识更多的朋友 ,向大家学习。