【问题标题】:updating view from gridview从 gridview 更新视图
【发布时间】:2014-01-28 06:44:52
【问题描述】:

我的查询是

SELECT  
    deldate,
    transno,
    matno,
    MAT_NAME,
    rawpkgno,
    MAX(SWITCH(deldate=? ,ORDCASES )) AS [CURRDATE],
    MAX(SWITCH(deldate=? ,ORDCASES )) AS [previous_day],
    MAX(SWITCH(deldate=? ,ORDCASES )) AS [Last_date]
FROM 
    invorder
WHERE
    invorder.strno =54009
    OR [invorder.deldate] IS NULL
GROUP BY
    matno,
    MAT_NAME,
    rawpkgno,
    transno,
    deldate

我想从 gridview 编辑这个。由于这是视图,我无法从 gridview 编辑它。但是他们是否可以通过任何方式使previous_dayLast_date 列保持不变,而我只能对CURRDATE 列进行更改。请帮助我。

【问题讨论】:

  • 所以你想说你想让唯一的 currDate 在 gridview 中不是可编辑的 prev_day 和 last_date ..??对吗??
  • 是的,我应该能够编辑 CURRDATE 列,并且只是为了验证我需要previous_day,Last_date 在表中可见
  • 你能做的只是使网格不可编辑并在网格上添加 row_added 事件,然后使特定列可编辑。
  • 我没有为此写任何代码我只是用一些 sql 查询配置它。我可以通过配置来做你所说的。而且这样做会影响数据库表吗?
  • 你可以使网格中的所有字段 - 可编辑或不可编辑使用配置向导..但要使单个字段可编辑或不可编辑 b> 你必须编写一点代码..

标签: asp.net sql ms-access gridview


【解决方案1】:

您好,您必须在网格上绑定 row_added 事件,并使所有单元格只读,除了您想要可编辑..检查下面的代码..

    public Form1()
    {
        InitializeComponent();
        dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded);  
    }

    void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
    {
        foreach (DataGridViewCell item in dataGridView1.Rows[e.RowIndex].Cells)
        {
            // here i used the 5 because i want to make the 5th index cell as editable.
            if (item.ColumnIndex == 5)
            {
                continue;
            }
            item.ReadOnly = true;
        }            
    }

    private void Form1_Load(object sender, EventArgs e)
    {            
        dataGridView1.DataSource = bind_your_data_source_here;
        dataGridView1.Refresh();
    }

您可以从这里找到示例.. Download

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2019-05-23
    • 2016-05-02
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    相关资源
    最近更新 更多