有没有一种方法可以在后面的代码中使用变量来引用ASP ID

时间:2019-03-24 20:49:11

标签: javascript c# jquery asp.net

我正在尝试使用c#变量删除属性。

在实际编写应用程序之前,我正在测试我的方法。

我尝试使用javascript和jQuery,但没有发现任何可以允许 在代码后面将TextBox ID替换为字符串值。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication2.index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="myText" runat="server" required="required"></asp:TextBox>

    </div>
    </form>

</body>

</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication2
{
    public partial class index : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            string straspID = "myText";


            bool fieldRequired = false;

            if (fieldRequired == false)
            {

                //FindControl("myText");
                FindControl(straspID);
                if (straspID != null)
           //         
                myText.Attributes.Remove("required");
          // I want to use straspID instead of the ID of the asp page
          // which will returned from a table - I'm simulating here
          // I get an error if I use straspID for remove attribute 
            }


        }

    }
}

我的预期结果是删除所选ID的属性。 我目前遇到语法错误。

2 个答案:

答案 0 :(得分:0)

            FindControl(straspID);

没有按照您的想法做。

您可以检查index.aspx.designer.cs文件并查看是否存在一个名为“ myText”的受保护成员变量吗?

如果有,您可以简单地执行以下操作:-

        if (fieldRequired == false)
        {
            myText.Attributes.Remove("required");
        }

如果没有名为myText的受保护成员,则在类级别将一个成员添加到“索引”:-

namespace WebApplication2
{
    public partial class index : System.Web.UI.Page 
    {
        protected Textbox myText;

        (etc)

只要您声明的类型正确且具有相同的名称和大小写,就无需借助FindControl来访问服务器控件。

答案 1 :(得分:0)

private void loadform(列出providerList)         {             foreach(providerList中的ProviderInRequest请求)             {                 //计划的taget div                 控制ctrl = FindControl(“ div” + req.aspName);                 //如果找到,则将visible设置为true。                 如果(ctrl!= null)                 {                     //将div设置为可见                     ctrl.Visible = true;

                // set label to proper text
                Label lbl = (Label)Page.FindControl("lbl" + req.aspName);
                lbl.Text = displayName;