首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DetailsView Insert的默认值

DetailsView Insert的默认值
EN

Stack Overflow用户
提问于 2009-10-01 00:17:42
回答 4查看 4.7K关注 0票数 5

当用户转到指定的页面时,我有一个连接到SqlDataSource的DetailsView,并且已经设置为插入模式。我本质上是将它用作某些事件的注册页面。我不想让用户键入他们的"UserName",而是希望根据已经登录的用户自动填充该字段。

有没有人对如何让User.Identity.Name成为Page_load上显示的默认值,或者如何在DetailsViewInsertEventArgs上编写重写代码有什么建议?当然,如果我完全错了,那么其他的建议也会很棒。

我在后台使用c#代码。

谢谢,迈克

EN

回答 4

Stack Overflow用户

发布于 2009-10-03 01:30:57

您可以这样做:

代码语言:javascript
运行
复制
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DetailsView1.DefaultMode = DetailsViewMode.Insert;
            if (DetailsView1.FindControl("TextBox1") != null)
            {
                TextBox txt1 = (TextBox)DetailsView1.FindControl("TextBox1");
                txt1.Text = User.Identity.Name.ToString();
            }
        }
    }
票数 3
EN

Stack Overflow用户

发布于 2009-10-03 14:47:29

啊,谢谢里卡多。这是有道理的,但我仍然有问题让它工作。我想我忘了提到控件在边界域中,如果这有区别的话。

下面是主页面代码:

代码语言:javascript
运行
复制
<div align="center">
    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
        DataKeyNames="RegistrationID" DataSourceID="SqlDataSourceFBReg" 
        DefaultMode="Insert" Height="50px" 
        Width="55%" OnItemInserted="NFLElim" >
        <Fields>
            <asp:BoundField DataField="RegistrationID" HeaderText="RegistrationID" 
                InsertVisible="False" ReadOnly="True" SortExpression="RegistrationID" />
            <asp:BoundField DataField="UserName" HeaderText="One Season User Name" 
                SortExpression="UserName" />
            <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />...

下面是我如何在setup后面编写代码:

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class NFLElim_Reg : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DetailsView1.DefaultMode = DetailsViewMode.Insert;
            if (DetailsView1.FindControl("UserName") != null)
            {
                TextBox txt1 = (TextBox)DetailsView1.FindControl("UserName");
                txt1.Text = User.Identity.Name.ToString();
            }
        }

    }
    protected void NFLElim(object sender, DetailsViewInsertedEventArgs e)
    {
        Response.Redirect("Account.aspx");
    }

}

希望我正确地插入了代码

票数 0
EN

Stack Overflow用户

发布于 2010-08-08 17:21:51

TextBox tata = (TextBox)DetailsView1.Rows6.Cells1.Controls;tata.Text=User.Identity.Name;

这将改变边界域。如果您将边界字段更改为templatefield,则此代码也可以工作:

txt1 txt1= (TextBox)DetailsView1.FindControl("UserName");txt1.Text =();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1501310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档