C# 中的 FormView FindControl EditTemplate

FormView FindControl EditTemplate in C#

我在 C# asp.net webforms 的代码隐藏中有这个,它不会执行,从 VB.NET 文件转置。 VB Webform 执行得很好,从 Pre-Render 找到处于编辑模式的控件。但是C#版本没有。

有人能指出问题所在吗?该代码应该在 EditMode 中找到 Telerik TextBox 内容,并使用 TextBox 的文本更改标题。

VB.NET代码

Private Sub FormView1_PreRender(sender As Object, e As EventArgs) Handles FormView1.PreRender
    If FormView1.CurrentMode = FormViewMode.Edit Then
        Dim ProductNameTextBox As Label = FormView1.FindControl("BannerLabel")
        Dim StudentName As RadTextBox = FormView1.FindControl("FirstNameTxtBx")
        Dim UpdateButton As Button = FormView1.FindControl("UpdateButton")
        ProductNameTextBox.Text = "Edit " + StudentName.Text + "'s Profile"
        UpdateButton.Text = "Update changes to " + StudentName.Text + "'s Profile"
    End If
End Sub

C#代码

private void FormView1_PreRender(object sender, EventArgs e)
{
    if (FormView1.CurrentMode == FormViewMode.Edit)
    {
        Label ProductNameTextBox = FormView1.FindControl("BannerLabel") as Label;
        RadTextBox StudentName = FormView1.FindControl("FirstNameTxtBx") as RadTextBox;
        Button UpdateButton = FormView1.FindControl("UpdateButton") as Button;
        ProductNameTextBox.Text = "Edit " + StudentName.Text + "'s Profile";
        UpdateButton.Text = "Update changes to " + StudentName.Text + "'s Profile";
    }
}

在 C# 版本中,您似乎忘记了 subscribeFormView1.PreRender 事件。

在您的 VB.NET 代码中,您有 Handles FormView1.PreRender 自动为您订阅活动。 Handles 关键字在 C# 中没有对应的关键字,因此您需要自己订阅该事件。

在您的代码某处添加以下行,以便在您的网络表单加载或初始化时执行:

FormView1.PreRender += FormView1_PreRender;

如果之后它仍然不起作用,您可能需要提供更多信息,因为我在方法主体中没有发现任何错误。