困擾了我一個星期的問題--detailview的手寫代碼實現修改,踫到detailview.ModeChang()---狀態變化出現的問題的思考--itemcommand編輯命令執行之前必須先ModeChange(Edit)

跳到ModeChange()第一個出現的地方
跳到cs後臺代碼
看過以後你就會知道,itemcommand 編輯命令執行之前必須先 ModeChange(Edit), 
執行完itemcommand 編輯命令之後還必須ModeChange(readonly), ModeChange(Edit), 
媽的吧了,現在知道我多痛苦了吧?msdn裏面也沒有說,可能是我看不懂吧!
先把源代碼貼出來
.aspx代碼:
 

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="cxcwmkxg.ascx.cs" Inherits="xianbiancang.qiantaimokuai_cxcwmkxg"  %>
<asp:DetailsView ID="dvyw" runat="server" AutoGenerateRows="False" BackColor="White"
    BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" Height="50px"
    OnItemCommand="dvyw_ItemCommand" OnItemUpdating="dvyw_ItemUpdating" OnModeChanging="dvyw_ModeChanging"
    OnPageIndexChanging="dvyw_PageIndexChanging" Width="600px">
    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
    <EditRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
    <RowStyle BackColor="White" ForeColor="#330099" />
    <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
    <Fields>
        <asp:CommandField ShowEditButton="True" UpdateText="進倉" />
        <asp:TemplateField HeaderText="登記時間">
            <EditItemTemplate>
                <asp:Label ID="lbrq_e" runat="server" Text='<%# Bind("rq") %>'></asp:Label>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("rq") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="rq_i" runat="server" Text='<%# Bind("rq") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="客戶代號">
            <EditItemTemplate>
                <asp:Label ID="lbkhdh_e" runat="server" Text='<%# Bind("khdh") %>'></asp:Label>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("khdh") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="khdh_i" runat="server" Text='<%# Bind("khdh") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="客戶名字">
            <EditItemTemplate>
                <asp:Label ID="lbkhmc_e" runat="server" Text='<%# Bind("khmc") %>'></asp:Label>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("khmc") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="khmc_i" runat="server" Text='<%# Bind("khmc") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="訂單號">
            <EditItemTemplate>
                <asp:TextBox ID="tbddh_e" runat="server" Text='<%# Bind("ddh") %>'></asp:TextBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("ddh") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="lbddh_i" runat="server" Text='<%# Bind("ddh") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="業務">
            <EditItemTemplate>
                <asp:Label ID="lbyw_e" runat="server"></asp:Label>&nbsp;
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("yw") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="yw_i" runat="server" Text='<%# Bind("yw") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="業助">
            <EditItemTemplate>
                <asp:Label ID="lbyz_e" runat="server" Text='<%# Bind("yz") %>'></asp:Label>&nbsp;
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("yz") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label6" runat="server" Text='<%# Bind("yz") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="接單時間">
            <EditItemTemplate>
                &nbsp;<asp:Label ID="lbjdsj_e" runat="server" Text='<%# Bind("jdsj") %>'></asp:Label>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("jdsj") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label7" runat="server" Text='<%# Bind("jdsj") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="出貨時間">
            <EditItemTemplate>
                <asp:Label ID="lbchsj_e" runat="server" Text='<%# Bind("chsj") %>'></asp:Label>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("chsj") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label8" runat="server" Text='<%# Bind("chsj") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="產品總量">
            <EditItemTemplate>
                <asp:TextBox ID="tbcpzl_e" runat="server" Text='<%# Bind("cpzl") %>'></asp:TextBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("cpzl") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label9" runat="server" Text='<%# Bind("cpzl") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="產品明細">
            <EditItemTemplate>
                <asp:TextBox ID="tbcpmx_e" runat="server" Height="120px" Text='<%# Bind("cpmx") %>'
                    Width="450px" TextMode="MultiLine"></asp:TextBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox10" runat="server" Text='<%# Bind("cpmx") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label10" runat="server" Text='<%# Bind("cpmx") %>' Width="450px"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="業務確認出貨時間">
            <EditItemTemplate>
                <asp:Label ID="lbywqrchsj_e" runat="server" Text='<%# Bind("ywqrchsj") %>'></asp:Label>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox11" runat="server" Text='<%# Bind("ywqrchsj") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label11" runat="server" Text='<%# Bind("ywqrchsj") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="業務確認訂單結束">
            <EditItemTemplate>
                <asp:Label ID="lbywqrddjs_e" runat="server" Text='<%# Bind("ywqrddjs") %>'></asp:Label>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox22" runat="server" Text='<%# Bind("ywqrddjs") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label4" runat="server" Text='<%# Bind("ywqrddjs") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="船務確認進倉時間">
            <EditItemTemplate>
                <asp:TextBox ID="tbcwqrjcsj_e" runat="server" Text='<%# Bind("cwqrjcsj") %>'></asp:TextBox>
            </EditItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="TextBox21" runat="server" Text='<%# Bind("cwqrjcsj") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label21" runat="server" Text='<%# Bind("cwqrjcsj") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Fields>
    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
</asp:DetailsView>
 

cs: 跳到ModeChange()第一個出現的地方
 
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace xianbiancang
{
    public partial class qiantaimokuai_cxcwmkxg : System.Web.UI.UserControl
    {
        string lbddh_i = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                dvyw_bind();
            }
            else
            {
                //#region detailsview綁定
                string ddh = Request.QueryString[0].ToString();
                //string ddh = ((Label)dvyw.FindControl("lbddh_i")).Text.Trim().ToString();
                //DataSet ds = new DataSet();
                //ds = selectforsimplecontrol.selectfordataset("select * from chanxiao where ddh='" + ddh + "'");

                //dvyw.DataSource = ds.Tables[0];
                //dvyw.DataBind();
                //dvyw.ChangeMode(DetailsViewMode.Edit);
                //#endregion
            }

        }
        protected void dvyw_bind()//detailsview綁定
        {
            #region detailsview綁定
            string ddh = Request.QueryString[0].ToString();
            DataSet ds = new DataSet();
            ds = selectforsimplecontrol.selectfordataset("select * from chanxiao where ddh='" + ddh + "'");

            dvyw.DataSource = ds.Tables[0];
            dvyw.DataBind();
            dvyw.ChangeMode(DetailsViewMode.Edit);
            #endregion
        }
        protected void dvyw_bindcw()//detailsview綁定--船務數據庫
        {
            #region detailsview綁定
            //string ddh = ((Label )dvyw.FindControl("lbddh_i")).Text.Trim().ToString();
            string ddh = lbddh_i;
            DataSet ds = new DataSet();
            ds = selectforsimplecontrol.selectfordataset("select * from chanxiao where ddh='" + ddh + "'");

            dvyw.DataSource = ds.Tables[0];
            dvyw.DataBind();
            dvyw.ChangeMode(DetailsViewMode.Edit);
            #endregion
        }

        protected void dvyw_ItemCommand(object sender, DetailsViewCommandEventArgs e)//編輯,更新,取消
        {
            //SqlDataReader datareader;
            //SqlConnection con;
            #region 編輯
            if (e.CommandName == "Edit")
            {
                //((TextBox)dvyw.FindControl("khmc_e")).Enabled = false;
                dvyw.ChangeMode(DetailsViewMode.Edit);
                //Response.Write(((Label)dvyw.FindControl("Label1")).Text);
                //string ywlb = ((Label)dvyw.FindControl("Label1")).Text;
                //((DropDownList)dvyw.FindControl("yw_e")).Items.Add(ywlb);
                //string yzlb = ((Label)dvyw.FindControl("Label6")).Text;
                //((DropDownList)dvyw.FindControl("yz_e")).Items.Add(yzlb);
                //string sgdpqr = ((Label)dvyw.FindControl("Label12")).Text;
                //((DropDownList)dvyw.FindControl("ddlsgdpqr_e")).Items.Add(sgdpqr);
                //#region 給生管的dropdownlist加生管的確認信息
                try
                {
                    //con = db.constring();
                    //con.Open();
                    //SqlCommand cmd = new SqlCommand("select * from shengguanwukongqueren", con);
                    //datareader = cmd.ExecuteReader();
                    //while (datareader.Read())
                    //{
                    //    ((DropDownList)dvyw.FindControl("ddlsgdpqr_e")).Items.Add(datareader[0].ToString());
                    //}
                    //datareader.Close();


                    #region 給業主的dropdownlist加業助的名單
                    cmd.CommandText = "select * from yzmd";
                    datareader = cmd.ExecuteReader();
                    while (datareader.Read())
                    {
                        ((DropDownList)dvyw.FindControl("yz_e")).Items.Add(datareader[0].ToString());
                    }

                    #endregion
                    //datareader.Close();
                    //con.Close();
                    //#endregion
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message + "cxywmkxg.ascx--給業務的detailsview的dropdownlist加載數據庫的名單時出錯");
                }
                finally
                {

                }
            }
            #endregion

            #region 出倉
            if (e.CommandName == "Update")
            {  
                #region 更新字符串

                string rq = ((Label)dvyw.FindControl("lbrq_e")).Text.Trim().ToString();
                string khdh = ((Label)dvyw.FindControl("lbkhdh_e")).Text.Trim().ToString();
                string khmc = ((Label)dvyw.FindControl("lbkhmc_e")).Text.Trim().ToString();
                string ddh = ((TextBox)dvyw.FindControl("tbddh_e")).Text.Trim().ToString();
                string yw = ((Label)dvyw.FindControl("lbyw_e")).Text.Trim().ToString();
                string yz = ((Label)dvyw.FindControl("lbyz_e")).Text.Trim().ToString();
                string jdsj = ((Label)dvyw.FindControl("lbjdsj_e")).Text.Trim().ToString();
                string chsj = ((Label)dvyw.FindControl("lbchsj_e")).Text.Trim().ToString();
                string cpmx = ((TextBox)dvyw.FindControl("tbcpmx_e")).Text.Trim().ToString();
                string cpzl = ((TextBox)dvyw.FindControl("tbcpzl_e")).Text.Trim().ToString();
                string ywqrchsj = ((Label)dvyw.FindControl("lbywqrchsj_e")).Text.Trim().ToString();
                string cwqrjcsj = ((TextBox)dvyw.FindControl("tbcwqrjcsj_e")).Text.Trim().ToString();
                string ywqrddjs = ((Label)dvyw.FindControl("lbywqrddjs_e")).Text.Trim().ToString();

                if (selectsingl.sel("select count(*) from chanxiaocw where ddh='" + ddh + "'") == true)
                {
                    Response.Write("<script>alert('這個訂單號已經進倉,請到進倉查詢中尋找')</script>");

                    dvyw.ChangeMode(DetailsViewMode.ReadOnly);
                    dvyw_bind();//邦訂產銷的數據庫
                }
                else
                {
                    #region 字符串
                    string sqlstr = "insert into chanxiaocw(rq,khdh,khmc,ddh,yw,yz,jdsj,chsj,cpmx,cpzl,ywqrchsj,cwqrjcsj,ywqrddjs) values('"

                    + rq + "','"
                    + khdh + "','"
                    + khmc + "','"
                    + ddh + "','"
                    + yw + "','"
                    + yz + "','"
                    + jdsj + "','"
                    + chsj + "','"
                    + cpmx + "','"
                    + cpzl + "','"

                    + ywqrchsj + "','"
                    + cwqrjcsj + "','"
                    + ywqrddjs + "')";
                    #endregion
                    insertdeleteupdata.ins(sqlstr);
                    dvyw.ChangeMode(DetailsViewMode.ReadOnly);
                    lbddh_i = ddh;
                    dvyw_bindcw();//邦定船務的數據庫
                  
                #endregion
                   
                }
                //dvyw.ChangeMode(DetailsViewMode.ReadOnly);
                //dvyw_bind();//邦訂產銷的數據庫
            }
            #endregion

            #region 取消
            if (e.CommandName == "Cancel")
            {
                dvyw.ChangeMode(DetailsViewMode.ReadOnly);

                dvyw_bind();
            }
            #endregion
        }
        protected void dvyw_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
        {

        }
        protected void dvyw_ModeChanging(object sender, DetailsViewModeEventArgs e)
        {

        }
        protected void dvyw_PageIndexChanging(object sender, DetailsViewPageEventArgs e)
        {

        }
    }
}
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值