我将c#原程序
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e); //register on the page that LoadPostData is being called
Page.RegisterRequiresPostBack(this); //specifies the name of the hidden field that contains the ClientIDs of the expanded rows
string hiddenFieldName = EXPANDEDCLIENTIDS_HIDDENFIELDNAME + this.ClientID; //adds an attribute to the HierarGrid itself that specifies the name of the hidden field that contains the ClientIDs of the expanded rows
this.Attributes.Add("ExpandedClientIDsName", hiddenFieldName); //register the hidden field that contains the ClientIDs of the expanded rows
Page.RegisterHiddenField(hiddenFieldName, ExpandedClientIDs); //register the client script from the embedded resource file (once for all HierarGrids on page)
using(StreamReader reader = new StreamReader(this.GetType().Assembly.GetManifestResourceStream(GetType(), "HierarGrid.js")))
{
string scriptToggleRow = reader.ReadToEnd();
Page.RegisterClientScriptBlock(this.GetType().ToString() + "_scriptToggleRow", scriptToggleRow);
}
//register the startup client script from the embedded resource file (once per HierarGrid)
using(StreamReader reader = new StreamReader(this.GetType().Assembly.GetManifestResourceStream(GetType(), "Startup.js")))
{
string scriptStartup = reader.ReadToEnd();
scriptStartup = scriptStartup.Replace("{--HiddenFieldName--}", hiddenFieldName);
Page.RegisterStartupScript(this.GetType().ToString() + this.UniqueID + "_Startup", scriptStartup);
}
}改为vb.net的
Protected Overrides Sub OnPreRender(e As EventArgs)
MyBase.OnPreRender(e)
'register on the page that LoadPostData is being called
Page.RegisterRequiresPostBack(Me)
'specifies the name of the hidden field that contains the ClientIDs of the expanded rows
Dim hiddenFieldName As String = EXPANDEDCLIENTIDS_HIDDENFIELDNAME + Me.ClientID
'adds an attribute to the HierarGrid itself that specifies the name of the hidden field that contains the ClientIDs of the expanded rows
Me.Attributes.Add("ExpandedClientIDsName", hiddenFieldName)
'register the hidden field that contains the ClientIDs of the expanded rows
Page.RegisterHiddenField(hiddenFieldName, ExpandedClientIDs)
'register the client script from the embedded resource file (once for all HierarGrids on page)
Dim reader As New StreamReader(Me.GetType().Assembly.GetManifestResourceStream([GetType](), "HierarGrid.js"))
Try
Dim scriptToggleRow As String = reader.ReadToEnd()
Page.RegisterClientScriptBlock(Me.GetType().ToString() + "_scriptToggleRow", scriptToggleRow)
Finally
reader.Dispose()
End Try
'register the startup client script from the embedded resource file (once per HierarGrid)
Dim reader As New StreamReader(Me.GetType().Assembly.GetManifestResourceStream([GetType](), "Startup.js"))
Try
Dim scriptStartup As String = reader.ReadToEnd()
scriptStartup = scriptStartup.Replace("{--HiddenFieldName--}", hiddenFieldName)
Page.RegisterStartupScript(Me.GetType().ToString() + Me.UniqueID + "_Startup", scriptStartup)
Finally
reader.Dispose()
End Try
End Sub
出错提示“System.IO.StreamReader.Protected Overrides Sub Dispose(disposing As Boolean)”是“Protected”,因此它在此上下文中无法访问。
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e); //register on the page that LoadPostData is being called
Page.RegisterRequiresPostBack(this); //specifies the name of the hidden field that contains the ClientIDs of the expanded rows
string hiddenFieldName = EXPANDEDCLIENTIDS_HIDDENFIELDNAME + this.ClientID; //adds an attribute to the HierarGrid itself that specifies the name of the hidden field that contains the ClientIDs of the expanded rows
this.Attributes.Add("ExpandedClientIDsName", hiddenFieldName); //register the hidden field that contains the ClientIDs of the expanded rows
Page.RegisterHiddenField(hiddenFieldName, ExpandedClientIDs); //register the client script from the embedded resource file (once for all HierarGrids on page)
using(StreamReader reader = new StreamReader(this.GetType().Assembly.GetManifestResourceStream(GetType(), "HierarGrid.js")))
{
string scriptToggleRow = reader.ReadToEnd();
Page.RegisterClientScriptBlock(this.GetType().ToString() + "_scriptToggleRow", scriptToggleRow);
}
//register the startup client script from the embedded resource file (once per HierarGrid)
using(StreamReader reader = new StreamReader(this.GetType().Assembly.GetManifestResourceStream(GetType(), "Startup.js")))
{
string scriptStartup = reader.ReadToEnd();
scriptStartup = scriptStartup.Replace("{--HiddenFieldName--}", hiddenFieldName);
Page.RegisterStartupScript(this.GetType().ToString() + this.UniqueID + "_Startup", scriptStartup);
}
}改为vb.net的
Protected Overrides Sub OnPreRender(e As EventArgs)
MyBase.OnPreRender(e)
'register on the page that LoadPostData is being called
Page.RegisterRequiresPostBack(Me)
'specifies the name of the hidden field that contains the ClientIDs of the expanded rows
Dim hiddenFieldName As String = EXPANDEDCLIENTIDS_HIDDENFIELDNAME + Me.ClientID
'adds an attribute to the HierarGrid itself that specifies the name of the hidden field that contains the ClientIDs of the expanded rows
Me.Attributes.Add("ExpandedClientIDsName", hiddenFieldName)
'register the hidden field that contains the ClientIDs of the expanded rows
Page.RegisterHiddenField(hiddenFieldName, ExpandedClientIDs)
'register the client script from the embedded resource file (once for all HierarGrids on page)
Dim reader As New StreamReader(Me.GetType().Assembly.GetManifestResourceStream([GetType](), "HierarGrid.js"))
Try
Dim scriptToggleRow As String = reader.ReadToEnd()
Page.RegisterClientScriptBlock(Me.GetType().ToString() + "_scriptToggleRow", scriptToggleRow)
Finally
reader.Dispose()
End Try
'register the startup client script from the embedded resource file (once per HierarGrid)
Dim reader As New StreamReader(Me.GetType().Assembly.GetManifestResourceStream([GetType](), "Startup.js"))
Try
Dim scriptStartup As String = reader.ReadToEnd()
scriptStartup = scriptStartup.Replace("{--HiddenFieldName--}", hiddenFieldName)
Page.RegisterStartupScript(Me.GetType().ToString() + Me.UniqueID + "_Startup", scriptStartup)
Finally
reader.Dispose()
End Try
End Sub
出错提示“System.IO.StreamReader.Protected Overrides Sub Dispose(disposing As Boolean)”是“Protected”,因此它在此上下文中无法访问。
它会帮你调用dispose方法
至于处理方法,楼上已经说了,在.net中运行时会帮你比较好的处理这些问题
if(TemplateDataModeSelection != null)
{
TemplateDataModeSelection(this, e);
return true;
}
else
return false;转成vb后
If Not (TemplateDataModeSelection Is Nothing) Then
raiseevent TemplateDataModeSelection(Me, e)
Return True
Else
Return False
End If这一句If Not (TemplateDataModeSelection Is Nothing) Then
如何处理??
raiseevent TemplateDataModeSelection(Me, e)
Return True
reader=nothing