0

GridviewにCommandArgumentを設定したいのですが、プログラムを実行するとエラーが発生しました。

これが私のButtonField宣言です。

<asp:ButtonField Text="Löschen" CommandName="Deleterecord"  ButtonType="Button" CommandArgument=<% Eval("userId") %>  /> 

これはエラーです:

Parser Error Message: Literal content ('<asp:ButtonField Text="Löschen" CommandName="Deleterecord"  ButtonType="Button" CommandArgument=') is not allowed within a 'System.Web.UI.WebControls.DataControlFieldCollection'.

編集:

これらのコードブロックを使用して、Gridviewに入力します。

protected void Button2_Click(object sender, EventArgs e)
        {
            Guid g = Guid.Parse("ef7a9f97-6a9a-44c6-ac38-82a5d06c394e");
            RoutesManager rm = new RoutesManager(g);
            rm.GetAllRoutes();
            List<Route> result;
            result=rm.GetAllRoutes();

            GridView1.DataSource = result;
            GridView1.DataBind();

        }

これはGetallRoutesです。

 public List<Route> GetAllRoutes()
        {
            var inputParams = new Dictionary<string, object>();
            var xmlHelper = new XmlHelper();
            var result = new List<Route>();

            inputParams.Add("UserId", _userId);

            DataTable dt = _dbhelper.Select("SELECT * FROM ROUTES WHERE UserId=@UserId", inputParams);

            foreach (DataRow row in dt.Rows)
            {
                var xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(row[XmldocPosition].ToString());               
                result.Add(xmlHelper.ConvertXmlDocumentToRoute(xmlDoc.ToXDocument()));
            }

             return result;

}

このコードブロックでいっぱいのグリッドビュー、各行のグリッドビューにリンクボタンを配置し、ユーザーがこのボタンをクリックすると、この行のみがDBとグリッドビューから削除されます。

4

2 に答える 2

0
CommandArgument="<% Eval(userId) %>"

ステートメントのフォーマットを確認してみてください。「」と末尾に注意してください)。

于 2012-06-17T18:28:39.527 に答える
0

あなたは行方不明です

  • 閉じ括弧
  • の二重引用符userID
  • CommandArgumentの結果の値を含む一重引用符

    <asp:ButtonField Text="Löschen" CommandName="Deleterecord" ButtonType="Button" CommandArgument='<%# Eval("userId") %>' />

于 2012-06-17T18:33:40.850 に答える