この C# のコード行を VB に変換するには、いくつかの助けが必要です。私はLinqを初めて使用し、構文に問題があります...
var rows = GridView1.Rows.Cast<GridViewRow>().Where(a => a != row).ToList();
いくつかのオンライン変換ツールを試しましたが、どれもうまくいきませんでした。
更新:ここに完全なコードブロックがあります....
protected void MoveGridViewRows(object sender, EventArgs e) {
Button btnUp = (Button)sender;
GridViewRow row = (GridViewRow)btnUp.NamingContainer;
// Get all items except the one selected
var rows = GridView1.Rows.Cast<GridViewRow>().Where(a => a != row).ToList();
switch (btnUp.CommandName)
{
case "Up":
//If First Item, insert at end (rotating positions)
if (row.RowIndex.Equals(0))
rows.Add(row);
else
rows.Insert(row.RowIndex - 1, row);
break;
case "Down":
//If Last Item, insert at beginning (rotating positions)
if (row.RowIndex.Equals(GridView1.Rows.Count - 1))
rows.Insert(0, row);
else
rows.Insert(row.RowIndex + 1, row);
break;
}
GridView1.DataSource = rows.Select(a => new
{
FirstName = ((TextBox)a.FindControl("txtFirstName")).Text,
LastName = ((TextBox)a.FindControl("txtLastName")).Text,
}).ToList();
GridView1.DataBind();
}
コンパイル時のVSの特定のエラーは....
エラー 11 アクセス可能な 'Where' を次の引数で呼び出すことができないため、オーバーロードの解決に失敗しました: 拡張メソッド 'Public Function Where(predicate As System.Func(Of System.Web.UI.WebControls.GridViewRow, Integer, Boolean)) As System. 「System.Linq.Enumerable」で定義された Collections.Generic.IEnumerable(Of System.Web.UI.WebControls.GridViewRow): ネストされた関数はデリゲート「System.Func(Of System.Web.UI. WebControls.GridViewRow, Integer, Boolean)'. 拡張メソッド「Public Function Where(predicate As System.Func(Of System.Web.UI.WebControls.GridViewRow, Boolean)) As System.Collections.Generic.IEnumerable(Of System.Web.UI.WebControls.GridViewRow)」で定義'System.Linq.Enumerable': 演算子 '<>' は型 'System.Web.UI に対して定義されていません。
また...
エラー 12 名前 'a' は宣言されていません。C:\Users\Documents\Visual Studio 2008\WebSites\vv_home\roeMgr.aspx.vb 51 46 C:\
HEREはこれまでのVBコードです.....
Protected Sub MoveGridViewRows(ByVal sender As Object, ByVal e As EventArgs)
Dim btnUp As Button = DirectCast(sender, Button)
Dim row As GridViewRow = DirectCast(btnUp.NamingContainer, GridViewRow)
' Get all items except the one selected
Dim rows = GridView1.Rows.Cast(Of GridViewRow)().Where(Function(a) a IsNot row).ToList()
Select Case btnUp.CommandName
Case "Up"
'If First Item, insert at end (rotating positions)
If row.RowIndex.Equals(0) Then
rows.Add(row)
Else
rows.Insert(row.RowIndex - 1, row)
End If
Exit Select
Case "Down"
'If Last Item, insert at beginning (rotating positions)
If row.RowIndex.Equals(GridView1.Rows.Count - 1) Then
rows.Insert(0, row)
Else
rows.Insert(row.RowIndex + 1, row)
End If
Exit Select
End Select
GridView1.DataSource = rows.[Select](a >= New With { _
.FirstName = DirectCast(a.FindControl("txtFirstName"), TextBox).Text, _
.LastName = DirectCast(a.FindControl("txtLastName"), TextBox).Text _
}).ToList()
GridView1.DataBind()
End Sub
ありがとう、