Vb.net 当gridview行处于编辑模式时,我应该使用哪个事件来更改控件?

Vb.net 当gridview行处于编辑模式时,我应该使用哪个事件来更改控件?,vb.net,events,gridview,Vb.net,Events,Gridview,我有一个带有编辑和项目模板的gridview。我想做的是,当一行处于编辑模式时,根据其中一列的值创建两个文本框,或者是只读的,或者是读写的 项目模板包含两个图像按钮编辑/删除三个标签(主标签、次标签和IsSecondary标签)。编辑模板有两个imagebuttons Cancel/Save(取消/保存)、两个文本框(Primary(主)和Secondary(次)以及一个用于选择Primary(主)或Secondary(次)的下拉列表) 我想做的是将两个文本框设置为只读,如果在进入编辑模式时下拉

我有一个带有编辑和项目模板的gridview。我想做的是,当一行处于编辑模式时,根据其中一列的值创建两个文本框,或者是只读的,或者是读写的

项目模板包含两个图像按钮编辑/删除三个标签(主标签、次标签和IsSecondary标签)。编辑模板有两个imagebuttons Cancel/Save(取消/保存)、两个文本框(Primary(主)和Secondary(次)以及一个用于选择Primary(主)或Secondary(次)的下拉列表)

我想做的是将两个文本框设置为只读,如果在进入编辑模式时下拉值是次要的。基本上,当值是次要值时,用户只能切换到主要值,但不能编辑文本框中的值。如果值是主值,则可以编辑这些值

我已尝试将以下内容添加到RowDataBound事件中

If e.Row.RowState = DataControlRowState.Edit Then
    If ddl_IsSecondary.SelectedValue = 1
        tb_Primary.ReadOnly = True
        tb_Secondary.Readonly = True
    Else
        tb_Primary.ReadOnly = False
        tb_Secondary.Readonly = False
    End If
End If
不幸的是,无论下拉列表的值是多少,文本框都是可读写的

还有什么我可以试试的吗?

我想你需要使用。MSDN声明:

在选定单元格的编辑模式启动时发生


如果正在编辑的单元格是包含下拉列表的单元格,您可能也应该忽略该事件。

谢谢。。。我没有试过你的答案,但我会看看。。。我真的找到了我的答案。。。我的测试恰好在一个偶数行上,这是一个备用行。所以我的路线

If e.Row.RowState = DataControlRowState.Edit Then...
没有被触发。。。将代码更改为

If e.Row.RowState = DataControlRowState.Edit OR e.Row.RowState = DataControlRowState.Alternate + DataControlRowState.Edit Then...
工作很好

If e.Row.RowState = DataControlRowState.Edit OR e.Row.RowState = DataControlRowState.Alternate + DataControlRowState.Edit Then...