【发布时间】:2015-07-16 12:39:00
【问题描述】:
我在网格视图中加载我的数据。在加载时,编辑链接位于网格视图的最右端,即网格视图的最后一列。
在此网格视图中,我具有使用多个字段输入进行搜索的功能。 当我按下 search 时,编辑链接显示为网格视图的第一列。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Library.UI
{
public partial class ReceiptReport : Form
{
private bool isSearchMode = false;
private bool isEditMode = false;
public ReceiptReport()
{
InitializeComponent();
isSearchMode = false;
GetReceipt(isSearchMode);
edit();
}
private void ReceiptReport_Load(object sender, EventArgs e)
{
dtpFrom.Value = DateTime.Today.AddDays(-1);
isEditMode = false;
FillPaymentMode();
this.WindowState = FormWindowState.Maximized;
}
private void edit()
{
DataGridViewLinkColumn Editlink = new DataGridViewLinkColumn();
Editlink.UseColumnTextForLinkValue = true;
Editlink.HeaderText = "Edit";
Editlink.DataPropertyName = "lnkColumn";
Editlink.LinkBehavior = LinkBehavior.SystemDefault;
Editlink.Text = "Edit";
receiptGrid.Columns.Add(Editlink);
}
private void receiptGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
int paymentTxnId_ = 0;
try
{
if (e.RowIndex >= 0 && receiptGrid.Columns[e.ColumnIndex].Index == 0)
{
DataRowView drv = receiptGrid.Rows[e.RowIndex].DataBoundItem as DataRowView;
paymentTxnId_ = Convert.ToInt32(drv.Row["paymentTxnId"]);
Receipt receiptFrm = new Receipt(paymentTxnId_);
receiptFrm.StartPosition = FormStartPosition.CenterParent;
receiptFrm.Show();
}
}
catch (Exception ex)
{
string title = "Error";
MessageBox.Show(ex.Message.ToString(), title);
}
}
private void GetReceipt(bool mode)
{
int dummyId = 0;
int getPaymentMode = 0;
string fromDate = string.Empty;
string toDate = string.Empty;
string payPartyName = string.Empty;
string recNum = string.Empty;
DataTable dt = new DataTable();
ReceiptDal objDal = new ReceiptDal();
try
{
if (mode == false)
{
dt = objDal.GetReceipt(dummyId);
receiptGrid.DataSource = dt;
receiptGrid.Columns[0].Visible = false;
}
else
{
receiptGrid.DataSource = null;
getPaymentMode = (int)cmbPaymentMode.SelectedValue;
fromDate = dtpFrom.Value.ToShortDateString();
toDate = dtpTo.Value.ToShortDateString();
payPartyName = txtPaymentPartyName.Text.Trim();
recNum = txtReceiptNum.Text.Trim();
dt = objDal.SearchReceipt(getPaymentMode, recNum, payPartyName, fromDate, toDate);
receiptGrid.DataSource = dt;
receiptGrid.Columns[0].Visible = false;
if (isEditMode == false)
{
edit();
isEditMode = true;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "Error");
}
}
#region search
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
ValidateDateTime(dtpFrom.Text, dtpTo.Text);
isSearchMode = true;
GetReceipt(isSearchMode);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "Error");
}
}
#endregion
}
}
我找不到为什么会这样?请指导。
【问题讨论】:
标签: c# winforms datagridview