0

プログラムの新しいウィンドウに RowEditing 機能を追加しました。最初に私のコードを見てください:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
 lblSet.Text = GridView1.Rows[e.NewEditIndex].Cells[2].Text;
 MultiView1.SetActiveView(vRecord);

 btnSave.Visible = false;
 btnBacktoHome.Visible = true;
 //this.lblMedium.Text = GridView1.Rows[e.NewEditIndex].Cells[1].Text;


 using (SqlConnection con = new SqlConnection("Data Source=MEHDI-PC\\SQLEXPRESS;Initial Catalog=PIMS;Integrated Security=True"))
 {
     using (SqlCommand cmd = new SqlCommand())
     {
         String sql = "select [DocumentID],[Ref],[Subject],[Src],[Dst],[Medium],[Date_Printed],[Date_Received],[Document_Type],[Action_Required],[Due_Date],[Actual_Date],[Content],[Tag],[Issue_No],[Attachment],[Notes],[Assigned_To],[Reply_Ref],[Priority],[Status],[Response],[Physical_File_No],[Physical_Rack_Location] from dbo.Documents1 where [DocumentId]=N'" + GridView1.Rows[e.NewEditIndex].Cells[2].Text + "'";
         cmd.Connection = con;
         cmd.CommandText = sql;
         con.Open();

         //SqlDataAdapter da = new SqlDataAdapter(sql,con);
         //DataTable dt = new DataTable();
         DataSet ds = new DataSet();
         using (SqlDataAdapter adp = new SqlDataAdapter(cmd))
         {
             adp.Fill(ds);
         }


         this.txtRef.Text = ds.Tables[0].Rows[0][1].ToString();
         this.txtSubject.Text = ds.Tables[0].Rows[0][2].ToString();
         this.ddlSource.Text = ds.Tables[0].Rows[0][3].ToString();
         this.ddlDestination.Text = ds.Tables[0].Rows[0][4].ToString();
         this.ddlMedium.Text = ds.Tables[0].Rows[0][5].ToString();
         this.txtDatePrinted.Text = ds.Tables[0].Rows[0][6].ToString();
         this.txtDateReceived.Text = ds.Tables[0].Rows[0][7].ToString();
         this.ddlDocumentType.Text = ds.Tables[0].Rows[0][8].ToString();
         this.cbxAction.Checked = ds.Tables[0].Rows[0][9].Equals(cbxAction.Checked);
         this.txtDueDate.Text = ds.Tables[0].Rows[0][10].ToString();
         this.txtActualDate.Text = ds.Tables[0].Rows[0][11].ToString();
         this.txtContent.Text = ds.Tables[0].Rows[0][12].ToString();
         this.txtTag.Text = ds.Tables[0].Rows[0][13].ToString();
         this.txtIssue.Text = ds.Tables[0].Rows[0][14].ToString();

         //this.fileupload1 = ds.Tables[0].Rows[0][15] ;

         this.txtNotes.Text = ds.Tables[0].Rows[0][16].ToString();
         this.ddlAssignedTo.Text = ds.Tables[0].Rows[0][17].ToString();
         this.txtReplyRef.Text = ds.Tables[0].Rows[0][18].ToString();
         this.ddlPriority.Text = ds.Tables[0].Rows[0][19].ToString();
         this.ddlStatus.Text = ds.Tables[0].Rows[0][20].ToString();
         this.ddlResponse.Text = ds.Tables[0].Rows[0][21].ToString();
         this.txtPhysicalFileNo.Text = ds.Tables[0].Rows[0][22].ToString();
         this.txtPhysicalRackLocation.Text = ds.Tables[0].Rows[0][23].ToString();

         if (con != null)
         {
             con.Close();
         }
         btnUpdate.Visible = true;
         btnSearch.Visible = false;
         BindGrid();
     }
 }

}

RowEditing イベントが発生すると、レコードのすべてのフィールドがレンダリングされる新しいページがプログラムで開かれます。ユーザーが任意のフィールドを編集し、このページの下部にある更新ボタンを押すと、Rowupdating イベントが発生します。

コードが示すように、次のようなテキストボックスを参照しています。

this.txtRef.Text = ds.Tables[0].Rows[0][1].ToString();

私は実際にファイルアップロード制御にこだわっています。新しいウィンドウで参照する方法がわかりません。あれは、

//this.fileupload1 = ds.Tables[0].Rows[0][15] ;

他のコードがスムーズに実行されるように、このコード行をコメントアウトしました。グリッドビューでファイルアップロードを操作する方法をオンラインで読みましたが、出会ったすべての情報は、新しいウィンドウではなく、GridView 内に実装されている RowEditing デザインに関するものでした。どんな助けでも大歓迎です。敬具。

4

1 に答える 1

0

そのようなファイルを割り当てることはできません。より良いオプションは、編集ビューで、ラベルにファイル名を表示することです。そして、その下にファイルアップロードコントロールを与えてファイルをアップロードし、アップロード時に古いファイルを置き換えてラベル名を更新します。

于 2013-09-18T06:21:38.047 に答える