asp.net怎么获取页面动态加载进来的用户自定义控件里面的值。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net怎么获取页面动态加载进来的用户自定义控件里面的值。。相关的知识,希望对你有一定的参考价值。

我的用户自定义控件有一个checkbox和一个checkboxlist。。。。但我点击保存按钮的时候。获取用户自定义控件里所有被选中的值。。然后保存到数据库。。。。效果图片我已经做出。。已经上传了图片。。请那个高手可以给点建议

你的问题很好解决!不要想的太复杂了!!!
获取用户账号有很多的方法!我推荐你使用URL字符串传参!
首先在你的登陆页面的登陆点击事件里面这么写!(提示放在你的那些代码的下面!)
Response.Redirect("主页面.aspx?userid="+账号控件.Text);
那么接下来你在你的主窗口里面的页面加载事件里面去获取由登陆窗口传过来的用户账号
string userid = Request.QueryString["userid"].ToString();
这样就获取到了userid了!那么第一个传参的问题就解决了!
接下来你可以利用这个userid去查询数据库中的你那个abc的bool字段!
比如:select * from tableName where 用户ID = userid
然后这条SQL语句就返回了DataSet相应的数据。最后把这个DataSet赋值到GV控件上!
那么最后我们就在前台来实现你的那个隐藏的效果了
在你前台页面上的GV上添加一个TemplateField项,然后在TemplateField项里面放入一个LinkButton,起名为"编辑",然后再LinkButton控件的Visible属性上动态绑定abc字段写法如下
asp:LinkButton ID="lik_edit" runat="server" Visible='%# (Eval("abc","0") == "True")?true:false %'/asp:LinkButton
这样你的问题就搞定了!
答案补充
就是根据获取的userid来查询数据库,然后返回指定查询到的信息绑定到GV上面
问题:你的abc字段是跟你绑定到GV上的那些字段是一张表的吗?
答案补充
哦!原来是这样!那如果你的两张表有主外键关系的话!那么你就写内连接查询吧!
会写吗?
答案补充
那你的abc的bool字段是存在与哪张表的?
没有关系也可以实现!
那么你GV上绑定的那些信息是跟abc字段一张表的吗?如果是那么我下面的前台方法可以使用!
如果不是那么我下面的前台绑定都不能使用了!
参考技术A 这个的解决方法很多:
方法1、把你的用户控件里的控件委托出去,然后你就可以操作这个控件了
方法2、在用户控件的后台代码中加入一个读checkbox和checkboxlist的方法
重点是要把这个方法定义为PUBLIC 的
方法3、既然你的界面定下来了 那么你可以通过JS读各个元素的值,右键看源代码就可以获取对应ID
具体代码我就不写了 网上相关代码一大把 呵呵 觉得对你有帮助就麻烦确认下 谢谢

ASP.NET C#中怎么让 httpcontext.current.user.identity.name 获取为自定义的值

也可以这么描述。用户登录了网站,然后我们写代码的时候,在网页的其他页面 使用 httpcontext.current.user.identity.name 的时候是用户的名字。求大神解决!
登录成功后,在任何页面的 httpcontext.current.user.identity.name 都是该用户的名字。求代码。求解释。

我目前可以替换掉单个页面的 httpcontext.current.user 对象 但不能替换整个用户登录页面。
我想问的是怎么在整个用户访问期间,httpcontext.current.user 对象 都是我自定义的对象。

鉴于你已经可以替换单页面的HttpContext.Current.User对象。


那么下面你需要做的事

    添加一个Global.asax

    //注册获取用户信息的事件,并且在其中写上你修改单个页面的代码
    protected void Application_AuthenticateRequest(object sender, EventArgs e)

        //你修改单个页面的代码,写在这里。这样整个管道中的HttpContext.Current.User都将改变。

参考技术A 不可能的 这个属性就是用户的姓名 不可能为对象 除非不用ASP.NET提供的这个 自己写那就可以自定义追问

我并没有说过是对象啊。我说的因为我们公司的就实现了这个,所以我才问,我有源代码,但是太多没找到是哪里做了这个操作

追答

我想问的是怎么在整个用户访问期间,httpcontext.current.user 对象 都是我自定义的对象

咯 这是你的原话 你就是想要整个用户对象 但是这个不可以的

追问

这个是可以的,因为 我已经实现了,是在微软的.NET DEVELOP 官方网站上看见的资料。我已经做出来了 你不用怀疑。

参考技术B 你要获取,你就必须先存进去, 什么时候存进去? 当时是在登陆 验证成功后, 把用户信息存进去。怎么放进去 得看你代码了追问

请问怎么放进去啊,我要用户登录后的每个访问页面的 httpcontext.current.user.identity.name 值都是这个用户。

追答

得看你代码

参考技术C HttpContext.Current.User是IPrincipal接口类型,如果想实现你说的这种,需要自己实现这个
IPrincipal就可以的。

以上是关于asp.net怎么获取页面动态加载进来的用户自定义控件里面的值。。的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET C#中怎么让 httpcontext.current.user.identity.name 获取为自定义的值

ASP.NET用户自定义控件

将数据从 ASP.NET 页面传递到动态加载的 ASCX 用户控件

在 asp.net 中,如何从 usercontrol 获取自定义 webcontrol 的引用?

asp.net mvc 中怎么像webform一样自定义一个BaseController实现判断用户是不是登录 然后获取用户的权限

Asp.Net其他页面如何调用Web用户控件写的分页