如何从DetailsView中检索TextBox - ASP.NET

时间:2010-11-09 10:45:22

标签: c# asp.net web-controls

我有一个DetailsView控件,里面是一个TextBox模板。 我需要在插入数据事件处理程序 - ,_ItemInserting时找出TextBox的值。

该脚本不起作用。蚂蚁想法?感谢

-------------------- WEB FORM

<asp:TemplateField HeaderText="Profile" SortExpression="ContentAuthor">
                <ItemTemplate>
                    <asp:Label ID="uxContentAuthorDisplayer" runat="server" Text='<%# Bind("ContentAuthor") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="uxContentAuthorInput" runat="server" Text='<%# Bind("ContentAuthor") %>'></asp:TextBox>
                </InsertItemTemplate>
            </asp:TemplateField>

--------------------代码背后

          protected void uxInsertAuthor_ItemInserting(object sender, DetailsViewInsertEventArgs e)
        {
            //// Find control on page
            TextBox myAuthorProfile = (TextBox)uxInsertAuthorInput.FindControl("uxContentAuthorDisplayer");
            // Set a default value in Data Base if field has been left empty (DB field NOT NULL)           
            if (string.IsNullOrEmpty(myAuthorProfile.Text))
            {
                string myAllert = "Field is NULL";
            }
            else
            {
                string myAllet = "Field is NOT NULL";
            }          
        }

3 个答案:

答案 0 :(得分:1)

尝试使用FindControl容器控件(DetailsView)的TemplateField方法。例如,如果您的DetailsView被命名为“MyControl”,请尝试

//// Find control on page
TextBox myAuthorProfile = (TextBox)MyControl.FindControl("uxContentAuthorInput");

请注意

您在FindControl方法中使用Label控件的ID,并且您正尝试将其转换为TextBox。

答案 1 :(得分:1)

另一个选择是从DetailsViewInsertEventArgs获取值。它有一个名为Values的属性,它是一个字典,包含将从DetailsView进入数据库的所有绑定值。所以你可以改为:

if (string.IsNullOrEmpty(e.Values("ContentAuthor")))
{
  string myAlert = "Field is NULL";
}
else
{
  string myAlert = "Field is NOT NULL";
}  

答案 2 :(得分:0)

如果我理解正确,您希望在将数据放入TextBox时检查DetailsView的值。 ItemInserting事件不是您要查找的事件:

http://msdn.microsoft.com/en-us/library/keezbt7k.aspx

我会说ItemCreated是您正在寻找的那个。