c# - 如何使用 C# 在 GridView 中启用或禁用文本框

标签 c# asp.net

我希望能够启用/禁用 gridview 中的文本框。我有 case 语句,在我的 case 语句中,当 Case = 1 时,我想在我的 gridview 中禁用一个名为 txtType 的文本框。这是我的代码:

SqlDataAdapter da = new SqlDataAdapter(@"select * from my table ", con);
DataTable dtTable = new DataTable();
da.SelectCommand.Parameters.AddWithValue("@RSP_SET_SK", (RSP_SET_SK));
da.Fill(dtTable);

GridView1.DataSource = dtTable.DefaultView;
GridView1.DataBind();

DataRow dtTable_row = dtTable.Rows[0];

if (dtTable.Rows.Count > 0)
{
    DDL_TYPE.SelectedValue = dtTable_row.Field<string>("TYPE").ToString();
    ddlPr.SelectedValue = dtTable_row.Field<Int32>("ID").ToString();
}

DataRow row1 = dtTable.Rows[0];
int temp = Convert.ToInt32(row1["STATUS"]);

switch (temp)
{
   case 1:
     lblStatus.Text = temp + " - Initial Test.";

   break;
}

最佳答案

您可以在 RowDataBound 事件中执行此操作。首先,确保在 aspx 代码中设置 OnRowDataBound 属性,如下所示:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
</asp:GridView>

然后在后面的代码中添加如下内容:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRowView data = (DataRowView)e.Row.DataItem;
        TextBox txtType = (TextBox)e.Row.FindControl("txtType");
        int status = Convert.ToInt32(data["STATUS"]);
        if (status == 1)
        {
            txtType.Enabled = false;
        }
    }
}

关于c# - 如何使用 C# 在 GridView 中启用或禁用文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892053/

相关文章:

c# - 如何缩放字体以适合指定的矩形

asp.net - 从单独的配置文件中读取设置

合并字节数组时 C# 内存不足异常

c# - Azure 自定义视觉 API 返回 JPG 图像 url 不受支持的媒体类型

c# - 在 Windows 中使用命名管道 (C++/C#)

c# - 如何在转发器控件中查找控件?

asp.net - 防止在 ASP.NET 4.0 中上传大文件

c# - 直接从token获取JWT声明,ASP Net Core 2.1

javascript - 在 javascript 代码中使用 Url.Action 的更好解决方案

asp.net - CSS 打印 - 分页前导致表头不重复(Internet Explorer 8)