在html按钮上打开表单,然后使用C#

时间:2019-06-28 11:48:21

标签: c# asp.net

任何机构都可以帮助我在单击按钮时打开表格吗?预先感谢。

aspx.cs代码:

        public string wogrid()
        {
            string htmlStr = "";
            con.COpen();
            string qry = "SELECT id,casetype,Case when status_c=1 then 'Active' else 'Inactive' End as status_c FROM t_claimtype";
            SqlDataReader rd = gd.DataReader(qry);
            while (rd.Read())
            {
                int ID = Convert.ToInt16(rd["id"].ToString());
                string caseType = rd["casetype"].ToString();
                string status = rd["status_c"].ToString(); 
                htmlStr += "<tr><td>" + ID + "</td>" + "<td>" + caseType + "</td>" + "<td>" + status + "</td>" + "<td>" + "<input type='submit' id='" + (rd)["ID"].ToString() + "' name='edit' value='EDIT' **onclick='windows.open(viewClaims.aspx)'** runat='server' />" + "</td></tr>";

            }
            con.cClose();
            return htmlStr;
        }
private void AddPlanToCart()
        {
            Response.Redirect("viewClaims.aspx");
        }

1 个答案:

答案 0 :(得分:1)

这将导致无效的JavaScript:

onclick='windows.open(viewClaims.aspx)'

因为:

  • 没有windows对象,称为window
  • 您没有将字符串"viewClaims.aspx"用引号引起来。

此外,HTML属性应该用双引号引起来。 JavaScript字符串可以单引号或双引号,因此您可以在其中灵活使用。为了在当前代码行上执行此操作,您将需要“转义”某些引号。 (只要您尝试在一行代码上混用三种不同的语言,这应该是预期的。)

此外,此<input/>元素不应包含runat="server",因为它不是服务器端控件。该属性对网络浏览器没有任何意义,只会被忽略。

(也请删除这些*字符。我确信它们在那里是为了突出显示您的帖子中的那部分代码,但实际上它们是无效的代码,应将其删除。)

将当前您拥有的这个字符串文字放在一起:

"' name='edit' value='EDIT' **onclick='windows.open(viewClaims.aspx)'** runat='server' />"

将成为这个:

"' name=\"edit\" value=\"EDIT\" onclick=\"windows.open('viewClaims.aspx')\" />"

首先,您真的不应该为此使用任何按钮。您正在构建的功能是在用户单击某些内容时将用户定向到另一个页面。 link 已经做到了。默认情况下,它不需要JavaScript,也不需要尝试使用表单或其他任何黑客手段。

只需使用链接:

"<a href=\"viewClaims.aspx\" id=\"" + (rd)["ID"].ToString() + "\">Edit</a>"