我希望能够启用/禁用 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/