如何在详细信息视图中从视图模式值填充插入模式的数据 [英] How do I fill data on insert mode from view mode value in detailsview

查看:127
本文介绍了如何在详细信息视图中从视图模式值填充插入模式的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我在详情视图中制作了一个自定义按钮。单击时,detailsview模式将更改为插入模式。之后,viewmode中的值将被复制到详细信息视图中的文本框或下拉列表中。这是我的代码:

Hi,
I made a custom button in detailsview. When it clicked, detailsview mode will change to insert mode. After that, values in viewmode will be copied to textbox or dropdownlist in details view. Here's my code:

Protected Sub DetailsView1_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewCommandEventArgs) Handles DetailsView1.ItemCommand
    Dim klasifikasi As New tbKlasifikasi
    If e.CommandName = "Revisi" Then
        Dim kelas As Label = CType(DetailsView1.FindControl("LabelKelas"), Label)
        Dim NoUrut As Label = CType(DetailsView1.FindControl("LabelNoUrut"), Label)
        Dim revisi As Label = CType(DetailsView1.FindControl("LabelRevisi"), Label)
        DetailsView1.ChangeMode(DetailsViewMode.Insert)
        Dim kelas1 As DropDownList = CType(DetailsView1.FindControl("DDIdKelas"), DropDownList)
        Dim NoUrut1 As TextBox = CType(DetailsView1.FindControl("TBNoUrut"), TextBox)
        Dim revisi1 As TextBox = CType(DetailsView1.FindControl("TBNoRevisi"), TextBox)
        kelas1.SelectedValue = kelas.Text.Trim()
        NoUrut1.Text = NoUrut.Text.Trim()
        revisi1.Text = Format(revisi.Text + 1, "00").Trim()
    End If
End Sub





以上代码返回错误:对象引用未设置为对象实例。



任意建议将非常感激。

谢谢,

AM



Above code returns error : Object reference not set to an instance of an object.

Any suggestions would be very appreciated.
Thanks,
AM

推荐答案

<InsertItemTemplate>
    <asp:TextBox ID="txtUserID" runat="server" Text='<%#Bind("UserIDField") %>'></asp:TextBox>
</InsertItemTemplate>
<InsertItemTemplate>
    <asp:TextBox ID="txtUserName" runat="server" Text='<%#Bind("UserNameField") %>'></asp:TextBox>
</InsertItemTemplate>
                                                                                    
Protected Sub DetailsView_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView.DataBound

    If DetailsView.CurrentMode = DetailsViewMode.Insert Then

        DirectCast(DetailsView.FindControl("txtUserID"), TextBox).Text=CurrentUID()
        DirectCast(DetailsView.FindControl("txtUserName"), TextBox).Text=GetUserName(CurrentUID())

    End If

End Sub









如果检查另一个解决方案







If check it another solution

<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" />







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");
    }

}


这篇关于如何在详细信息视图中从视图模式值填充插入模式的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆