我在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";
}
}
答案 0 :(得分:0)
您似乎忘记了C#版本中的subscribe到FormView1.PreRender
事件。
在您的VB.NET代码中,您有Handles FormView1.PreRender
自动订阅该事件。 Handles
关键字在C#中没有等价物,因此您需要自己订阅该事件。
在代码中的某处添加以下行,以便在加载或初始化Web表单时执行:
FormView1.PreRender += FormView1_PreRender;
如果之后仍然没有工作,您可能需要提供更多信息,因为我在方法体内没有看到任何错误。