Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数组作为服务器标记发送';s属性_C#_Asp.net - Fatal编程技术网

C# 将数组作为服务器标记发送';s属性

C# 将数组作为服务器标记发送';s属性,c#,asp.net,C#,Asp.net,我想知道是否可以向标记的属性发送字符串数组 <SampleTag:Form runat="server" ID="sampleform1" Items={item1,item2,item3,item4} > </SampleTag:Form> 这不起作用,因为它将“{item1,item2,item3,item4}”作为字符串发送给类。最好在代码隐藏中这样做 <SampleTag:Form runat="server" ID="samplef

我想知道是否可以向标记的属性发送字符串数组

<SampleTag:Form 
  runat="server"  
  ID="sampleform1"
  Items={item1,item2,item3,item4}
>
</SampleTag:Form>


这不起作用,因为它将“{item1,item2,item3,item4}”作为字符串发送给类。

最好在代码隐藏中这样做

<SampleTag:Form runat="server" ID="sampleform1"></SampleTag:Form>

sampleform1.Items = new { item1, item2, item3, item4 };

sampleform1.Items=new{item1,item2,item3,item4};

最好在代码隐藏中执行此操作

<SampleTag:Form runat="server" ID="sampleform1"></SampleTag:Form>

sampleform1.Items = new { item1, item2, item3, item4 };

sampleform1.Items=new{item1,item2,item3,item4};

您可能必须向属性添加属性,但您应该能够继续使用xml端执行分配:

<SampleTag:Form
  runat="server"
  ID="sampleform1">

    <Items ID="item1">item1</Items>
    <Items ID="item2">item2</Items>
    <Items ID="item3">item3</Items>
    <Items ID="item4">item4</Items>

</SampleTag>

项目1
项目2
项目3
项目4

本文可能会提供一些额外的见解:

您可能需要向属性添加属性,但您应该能够继续使用xml端来执行分配:

<SampleTag:Form
  runat="server"
  ID="sampleform1">

    <Items ID="item1">item1</Items>
    <Items ID="item2">item2</Items>
    <Items ID="item3">item3</Items>
    <Items ID="item4">item4</Items>

</SampleTag>

项目1
项目2
项目3
项目4

本文可能会提供一些额外的见解:

我知道您已经接受了答案,但我想让您知道,使用类型转换器可以完成您正在尝试的操作。我更喜欢这种方法,因为它使控件对设计者更友好,也更易于他人使用

使用:(对不起,VB代码…)


代码:

关键是在属性上使用TypeConverter属性(有关定义,请参见此类后面的内容)

公共类ServerControl1
继承网络控制
_
公共属性项()作为字符串()
得到
如果ViewState(“项目”)不是空的,那么
返回视图状态(“项目”)
其他的
返回新字符串(){}
如果结束
结束
设置(ByVal值为String())
视图状态(“项目”)=值
端集
端属性
受保护的覆盖子呈现(ByVal编写器作为System.Web.UI.HtmlTextWriter)
MyBase.Render(编写器)
对于项目中的每个字符串
Write.Write(String.Format(“-{0}
”,s)) 下一个 端接头 末级 公共类StringToArray 继承类型转换器 公共重载将函数CanConvertFrom(ByVal上下文作为ITypeDescriptorContext,ByVal sourceType作为类型)重写为布尔值 如果sourceType是GetType(字符串),则 返回真值 如果结束 返回MyBase.CanConvertFrom(上下文,源类型) 端函数 公共重载将函数ConvertFrom(ByVal上下文作为ITypeDescriptorContext,ByVal区域性作为CultureInfo,ByVal值作为Object)重写为Object 如果值的类型为字符串,则 Dim v As String()=CStr(value).Split(新字符(){”,“c}) 返回v 如果结束 返回MyBase.ConvertFrom(上下文、区域性、值) 端函数 末级
我知道您已经接受了答案,但我想让您知道,使用类型转换器可以完成您正在尝试的操作。我更喜欢这种方法,因为它使控件对设计者更友好,也更易于他人使用

使用:(对不起,VB代码…)


代码:

关键是在属性上使用TypeConverter属性(有关定义,请参见此类后面的内容)

公共类ServerControl1
继承网络控制
_
公共属性项()作为字符串()
得到
如果ViewState(“项目”)不是空的,那么
返回视图状态(“项目”)
其他的
返回新字符串(){}
如果结束
结束
设置(ByVal值为String())
视图状态(“项目”)=值
端集
端属性
受保护的覆盖子呈现(ByVal编写器作为System.Web.UI.HtmlTextWriter)
MyBase.Render(编写器)
对于项目中的每个字符串
Write.Write(String.Format(“-{0}
”,s)) 下一个 端接头 末级 公共类StringToArray 继承类型转换器 公共重载将函数CanConvertFrom(ByVal上下文作为ITypeDescriptorContext,ByVal sourceType作为类型)重写为布尔值 如果sourceType是GetType(字符串),则 返回真值 如果结束 返回MyBase.CanConvertFrom(上下文,源类型) 端函数 公共重载将函数ConvertFrom(ByVal上下文作为ITypeDescriptorContext,ByVal区域性作为CultureInfo,ByVal值作为Object)重写为Object 如果值的类型为字符串,则 Dim v As String()=CStr(value).Split(新字符(){”,“c}) 返回v 如果结束 返回MyBase.ConvertFrom(上下文、区域性、值) 端函数 末级