牛腩 40,41,42 整合新闻内容页 如何用LinkButton传数据,验证码的使用,保持滚动条不变,锚链接...

当我们点击删除的时候,这个链接它到底是执行了什么呢?  通过 CommandArgument 来传递执行的 评论 ID 是什么.

另外说说  Linkbutton 和 Hyperlink的区别

前者显示的样子,也是一个超链接,但是他的作用是按钮的作用,可以想干一些你自己想要做的事情.第二个,只是超级链接的作用而已.

image 

protected void lbtnDelComm_Click(object sender, EventArgs e)
    {
        //当前点击的按钮
        LinkButton lb = (LinkButton)sender; //这个就是表示,是哪个链接被点击了.
        //获取传过来的commentid
        string commId = lb.CommandArgument;


        //删除评论
        new CommentManager().Delete(commId);


        //再次绑定评论  疑问:为什么这里不再重新绑定新闻呢?因为我们这里是删除了评论,只用评论刷新,而不需要重新刷新新闻
        //疑问:那假如,这个时候的新闻已经更改了呢?那我点删除评论,新闻会跟着刷新么?   不会!因为新闻是用 asp.net的状态保存住的
        string newsid = Request.QueryString["newsid"];
        repComment.DataSource = new CommentManager().SelectByNewsId(newsid);
        repComment.DataBind();

        //我们绑定新闻看看有无刷新

        NewsManager nm = new NewsManager();
        News news = nm.SelectById(newsid);

        lblTitle.Text = news.Title;
        lblContent.Text = news.Content;
        lblCreateTime.Text = news.Createtime;
    }

如何在前台JS里面先设置一个 提示,是否真的删除评论呢?

还是要回到aspx的代码里面,在 LinkButton里面加入一个 OnClientClick

image

image   这样,就会先执行 客户端的判断,然后才去执行删除.

 

=================================================================================================

技巧1:如何对IP  隐藏最后一位呢?  例如  127.0.0.1变成  202.96.134.*

 

 

技巧2:如何当我们删除了评论了之后,滚动条不是跑到了页面的最顶端,而是保持在原来的位置呢?

 

我们在 newscontent.aspx 的第一行,加入一个代码   MaintainScrollPositionOnPostback="true"

image

 

技巧3:页面里面的锚记.例如 我们点击 我要评论 就跳到评论框.   <a href="#com" class="a_comm">我要评论</a>   在评论框这里 我们加入一个锚记<a name="com">&nbsp;</a>

通过 给 a 加入一个 name=”com”  然后再上面的链接的 href 的地址为 #com  就可以了

 

技巧4:js 全部选择.  this.select()    对火狐也有效果.

我的评论:<asp:TextBox ID="txtComment" CssClass="txtComment" runat="server" TextMode="MultiLine" οnclick="this.select()" Text="请在此输入评论内容"></asp:TextBox>

要记住,这里的 onclick 是我们手写的,.net控件对于前台的js代码,无提示功能.

 

 

生成验证码  用到  一般处理程序WaterMark.ashx

1:现在web 目录下,建立一个  handler  用于存放一般处理程序

image    在文件夹上,新建项目  选择 一般处理程序image

然后我们把代码,复制进去.

image

image 我们重新生成解决方案,看看有无报错.

 

我们看 如何调用这个  WaterMark.ashx 呢?在图片这里   把src 的地址改为  .由于我们点击验证码会产生一个新的验证码,所以这里还需要一个JS

验证码:<img src="handler/WaterMark.ashx" id="vimg" alt=""  onclick="changeCode()" style="cursor:pointer"/>
 
 
如果我们直接在后台的CS文件里面输出错误的话,那么这个错误,会在html的第一行,并且会导致 网页的CSS变形,而且屏幕会看起来白屏
 
 
 

 

如何解决呢?我们用到 .NET在后置代码中输入JS提示语句(背景不会变白)类似于AJAX的效果,页面不刷新!!!

Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('验证码输入错误!');</script>"); 
在后台,注册服务器端的脚本
 if (code != rightCode)
        {
            //Response.Write("<script type='text/javascript'>alert('验证码输入错误')</script>");  //这个不行,会导致页面白屏,并且会跑到前台页面的第一行,影响CSS

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('验证码输入错误!');</script>"); 

            return ;  //这里要加 return  表示验证码不对的话,就直接return回去,下面的  添加数据库  就不执行了.
        }

 

这样,添加评论就完成了.我们考虑一种情况,当我们没有评论的时候,我们显示  “该新闻暂无评论”  这个如何实现?

image 对应的Html是   <div id="emptydate" class="more_com"><p>该新闻暂无评论</p></div>

我们加一个 runat=”server”  转换为  asp.net控件,我们就可以在后台 cs文件通过 ID  来进行控制了.

image

在后台的CS里面,我们判断,如果有新闻评论,显示评论,如果没有评论,则显示刚才的   “该新闻 暂无评论”

image

转载于:https://www.cnblogs.com/iceicebaby/archive/2011/12/29/2306513.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值