【问题标题】:Setting CommandArgument for a Gridview为 Gridview 设置 CommandArgument
【发布时间】:2012-06-19 21:13:41
【问题描述】:

我想为 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;

}

我的网格视图充满了这段代码,我在我的 Gridview 中为每一行放置了一个链接按钮,如果用户单击此按钮,我希望仅从 DB 和 Gridview 中删除该行

【问题讨论】:

  • 您知道您的 eval 语句缺少右括号吗?
  • 我是这么认为的! userid 是结果集中的一个字段吗? CommandArgument="" 有效吗?
  • 用户在gridview中看不到这个字段。这个字段是Table的主键,我想得到这个值,然后从Gridview中删除这个行
  • 您能否将代码发布到您对 GridView 进行数据绑定的位置,以便我们查看实际数据的样子?有时,CommandArgument="" 是您需要的,其中 Container 是您正在数据绑定的项目。

标签: asp.net


【解决方案1】:

你不见了

  • 右括号
  • userID 上的双引号
  • 单引号包含 CommandArgument 的结果值

    &lt;asp:ButtonField Text="Löschen" CommandName="Deleterecord" ButtonType="Button" CommandArgument='&lt;%# Eval("userId") %&gt;' /&gt;

【讨论】:

  • 我喜欢所有的东西,你说的。但问题仍然存在:(
  • 我认为上面的语句中仍然缺少 # 它必须是
【解决方案2】:
CommandArgument="<% Eval(userId) %>"

尝试检查语句的格式。注意 "" 和结尾 )。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 2012-01-19
    • 1970-01-01
    • 2012-10-13
    • 2012-09-13
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    相关资源
    最近更新 更多