datakeys和datakeynames的用法!

      刚查了下留言板发现一个问题,在分页过程中,在第一页一切功能正常,在后面几页中编辑,删除都取不到正常的KEY,一直取的是第一页面的值,这个是李写的,他用到了HiddenField这个控件,隐藏了一些值,不管是第多少页的它都取的一样,汗,还算发现的早,要不周一被马主管发现了可就不得了了。查了些资料把这个BUG修复了,其中就用到了 datakeys和datakeynames也就顺便学习了下

      在页面的代码出添加 <asp:GridView DataKeyNames="msg_id">这个后 代码中就改了一行
  protected void lkbtnEdit_Click(object sender, EventArgs e)
    {
        LinkButton bt = new LinkButton();
        bt = (LinkButton)sender;
        TableCell tc = (TableCell)bt.Parent;
        GridViewRow gvr = (GridViewRow)tc.Parent;
        Session["MsgID"] = gvwDefault.DataKeys[gvr.RowIndex].Value;//这个是改动后的
         //  Session["MsgID"] =((HiddenField)gvwDefault.Rows[gvr.RowIndex].FindControl("HiddenMsgID")).Value;

    
        //string a = gvr.Cells[1].Text;//获得ID
        //doFlag.flag = "modify";
        Session["doFlag"] = "modify";
        trTitle.Visible = true;
        txtTitle.Text = msg.getMessageTitle(Session["MsgID"].ToString());
        btnAccept.Text = "修改";
        txt_content.Text = msg.getMessageContent(Session["MsgID"].ToString());
       txt_content.Text= txt_content.Text.Replace("<br>", "/r/n");
       txt_content.Text = txt_content.Text.Replace("&nbsp", " ");
        if (HttpContext.Current.Request.Browser.JavaScript)
        {
            txt_content.Page.RegisterStartupScript("lkbtnEdit", "<script   language='javascript'>document.forms[0]." +
            txt_content.ClientID + ".focus();</script>");
        }
        else
        {
            txt_content.Attributes.Add("onclick", "document.all(" + txt_content.ClientID + ").focus();");
        }
    }    

觉得datakeynames就是把这个键隐藏,不显示出来,但是代码中有必须用的,它就起了这个作用吧!
  个人感觉有的时候我们不知道一个对象以及它的方法属性起什么作用的时候可以设置断点,进入调式状态,观察相应的值的变化就可以知道它的意思了,以及是起什么作用的了,反正看文章(不包括好的文章)写的烂的话可能会理解错的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值