IronPython for ASP.NET:使用共享代码

IronPython入门教程第二篇使用共享代码,创建一个简单的IronPython类,并在ASP.NET页面中使用它。

1.创建Web站点和ASP.NET页面,选择语言为IronPython

2.关于App_Script文件夹。经过上面第一步操作后,新建Web站点中会自动创建一个名为App_Script的文件夹,在这里你可以添加一些可重用的IronPython共享类,在该文件夹下只可以放类,而不能放其它诸如Web PageUser Control等文件。

3.创建一个简单的共享类。在App_Script文件夹中添加新项,会弹出如下对话框,选择IronPython Module。

创建一个简单的共享类SampleClass,在该类中有一个属性TestString,它通过property()函数来指定它的访问方法SetTestString()GetTestString(),代码如下:

class SampleClass:

    
"Sample class with one property"

    _testString 
= ""

    
def SetTestString(value):

        _testString 
= value


    
def GetTestString():

        
return _testString

    TestString 
= property(GetTestString, SetTestString)

4.使用共享类,在ASP.NET页面中添加相关的控件,如下所示:

<div>

    
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> &nbsp;

    
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br /><br />

    
<h3><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></h3>

</div>

打开Default.aspx.py文件,导入命名空间:

import SampleModule

from SampleModule import SampleClass

编写按钮的单击事件:

def Button1_Click(sender, args):

    sc 
= SampleClass()

    sc.TestString 
= TextBox1.Text

    Label1.Text 
= sc.TestString

运行后在文本框中输入TerryLee,单击按钮如下:

完整示例代码下载:http://files.cnblogs.com/Terrylee/IronPythonDemo2.rar

注:该例子来自于IronPython 入门教程。

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-11-05 11:21 TerryLee 阅读(2387) 评论(17)  编辑 收藏 网摘 所属分类: [18]  动态语言

  回复  引用  查看    
#1楼 2006-11-05 13:07 | Jeffrey Zhao      
它是靠GetXXX和SetXXX来生成一个属性的吗?那么我如果真的要写一个GetXXX或者SetXXX怎么办呢?还有它怎么运用CustomAttribute呢?
  回复  引用  查看    
#2楼 [楼主]2006-11-05 13:27 | TerryLee      
@Jeffrey Zhao
自己写的GetXXX也没关系啊,它通过property()方法来指定的,所以对于自己写的方法没影响,如:
TestString = property(GetTestString, SetTestString)

运用自定义的CustomAttribute现在还不会哦:)
  回复  引用  查看    
#3楼 2006-11-05 13:40 | 木野狐      
@Jeffrey Zhao

custom attribute 应该是不支持的。
  回复  引用  查看    
#4楼 [楼主]2006-11-06 08:57 | TerryLee      
@木野狐
:)
  回复  引用    
#5楼 2006-11-06 09:05 | 小庄[匿名] [未注册用户]
见识了!这玩意好像脱离“类型”了。不过没有类型vs怎么实现智能感应?
  回复  引用  查看    
#6楼 2006-11-06 13:34 | KiddLee      
我在写程序时忘了写这句“TestString = property(GetTestString, SetTestString)”但是程序也通过了?不解
  回复  引用  查看    
#7楼 [楼主]2006-11-06 23:39 | TerryLee      
@小庄[匿名]
现在还不支持智能感应
  回复  引用  查看    
#8楼 [楼主]2006-11-07 08:27 | TerryLee      
@KiddLee
编译通过了,运行也可以吗?
  回复  引用  查看    
#9楼 2006-11-07 08:31 | KiddLee      
@TerryLee
对,跟你上图的结果一样,我返回来再看程序的时候发现TestString不知道从哪里来的,才发现少写这句话
  回复  引用    
#10楼 2006-11-07 10:00 | heweitykc [未注册用户]
谁有IronPython的语法资料,跟俺共享下啊!谢谢了!heweitykc@163.com
  回复  引用    
#11楼 2006-11-07 16:29 | wking108 [未注册用户]
谁有IronPython的语法资料呀 我也要呀 非常感谢 wking108@163.com
  回复  引用  查看    
#12楼 [楼主]2006-11-08 19:27 | TerryLee      
@wking108
在IronPython团队中整理了一份文档,可以参考一下

目前没有很多的资料
  回复  引用    
#13楼 2006-11-11 17:16 | sion [未注册用户]
要不要TestString=property(GetTestString,SetTestString)确实在运行是效果是一样的。
因为GetXXX和SetXXX就是可以通过XXX来访问的。

如果这样定义
class SampleClass:

"Sample class with one property"

_testString = ""

def _SetTestString(value):

_testString = value


def _GetTestString():

return _testString

TestString = property(_GetTestString, _SetTestString)

就会发现TestString=property(_GetTestString,_SetTestString)是不可少的。
  回复  引用  查看    
#14楼 2006-11-11 18:38 | KiddLee      
@sion
哦,原来是这样,看来应该拿点时间看看Python的语法
  回复  引用  查看    
#15楼 2006-12-09 17:43 | 木野狐      
>>> print property.__doc__
property(fget=None, fset=None, fdel=None, doc=None) -> property attribute

fget is a function to be used for getting an attribute value, and likewise
fset is a function for setting, and fdel a function for del'ing, an
attribute. Typical use is to define a managed attribute x:
class C(object):
def getx(self): return self.__x
def setx(self, value): self.__x = value
def delx(self): del self.__x
x = property(getx, setx, delx, "I'm the 'x' property.")
  回复  引用  查看    
#16楼 2006-12-09 17:44 | 木野狐      
这是 CPython 中的解释。
  回复  引用  查看    
#17楼 [楼主]2006-12-11 23:23 | TerryLee      
@木野狐
谢谢:)




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

相关文章:

相关链接: