当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪限制CheckBoxList控件只能单选      开发要求,原本对CheckBoxList控件是用来让用户多选的。但现在特殊要求,这个CheckBoxList控件限制只能单选。哈哈,看看Insus.NET做出来的效果: 为了你也能实现出来,可以参考下面的方法,.........
    ▪C#开发Activex控件--与JavaScript的互调      实现了ActiveX控件之后,在网页上的使用方式一般为:<object id="grid" classid="clsid:9661B223-6188-4849-B292-C7D9D8173E49" width="100%" height="100%"></object>注意不是:<object id="grid" classid="clsid:9771B223-6188-.........
    ▪JavaScript用JQuery呼叫Server端方法      Insus.NET从2013年开始学习Javascript,此博文是第一次使用JQuery,从Javascript客户端用JQuery呼叫Server端的方法。首先看看此例的演示: 准备好Server端的方法: [System.Web.Services.WebMethod] public stati.........

[1]限制CheckBoxList控件只能单选
    来源:    发布时间: 2013-10-28

开发要求,原本对CheckBoxList控件是用来让用户多选的。但现在特殊要求,这个CheckBoxList控件限制只能单选。

哈哈,看看Insus.NET做出来的效果:

 

为了你也能实现出来,可以参考下面的方法,第一是准备好一个对象“地支”(Terrestrial Branch)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for TerrestrialBranch
/// </summary>
namespace Insus.NET
{
public class TerrestrialBranch
{
private int _ID;
private string _Name;

public int ID
{
get{return _ID;}
set { _ID = value; }
}

public string Name
{
get { return _Name; }
set { _Name = value; }
}


public TerrestrialBranch()
{
//
// TODO: Add constructor logic here
//
}

public TerrestrialBranch(int id, string name)
{
this.ID = id;
this._Name = name;
}
}
}


用数据填充这个对象,并用泛型List<t>来存储这十二个对象:

private List<TerrestrialBranch> GetData()
{
List<TerrestrialBranch> tbs = new List<TerrestrialBranch>();
tbs.Add(new TerrestrialBranch(1,"子"));
tbs.Add(new TerrestrialBranch(2, "丑"));
tbs.Add(new TerrestrialBranch(3, "寅"));
tbs.Add(new TerrestrialBranch(4, "卯"));
tbs.Add(new TerrestrialBranch(5, "辰"));
tbs.Add(new TerrestrialBranch(6, "巳"));
tbs.Add(new TerrestrialBranch(7, "午"));
tbs.Add(new TerrestrialBranch(8, "未"));
tbs.Add(new TerrestrialBranch(9, "申"));
tbs.Add(new TerrestrialBranch(10, "酉"));
tbs.Add(new TerrestrialBranch(11, "戌"));
tbs.Add(new TerrestrialBranch(12, "亥"));
return tbs;
}


在.aspx页面拉一个CheckBoxList控件,设置两个属性RepeatColumns="6" RepeatDirection="Horizontal"

<asp:CheckBoxList ID="CheckBoxListTerrestrialBranch" runat="server" RepeatColumns="6" RepeatDirection="Horizontal"></asp:CheckBoxList>


把刚才准备好的List<TerrestrialBranch>绑定给这个CheckBoxList控件:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using
    
[2]C#开发Activex控件--与JavaScript的互调
    来源:    发布时间: 2013-10-28

实现了ActiveX控件之后,在网页上的使用方式一般为:

<object id="grid" classid="clsid:9661B223-6188-4849-B292-C7D9D8173E49" width="100%" height="100%">
</object>

注意不是:

<object id="grid" classid="clsid:9771B223-6188-4849-B292-C7D9D8173E49" width="100%" height="100%" />


通常情况下,我们在企业级的项目开发中,还需要将Activex控件与调用它的页面进行互调,否则Activex控件没有太大的用处。而互调则基本上都是由脚本语言来完成的。

首先看一下Javascript如何主动调用Activex控件。


通过Javascript,网页可以调用Activex控件内的公共方法和属性。

如在控件中设置的属性为:

/// <summary>
/// 总页数
/// </summary>
public string TotalPage
{
get { return totalPage; }
set { totalPage = value; }
}


则在网页上可以通过下面的方式调用:

<script type="text/javascript">
//获取页面参数
function getPara() {
alert("总页数:"+ document.getElementById("grid").TotalPage);
}
</script>


如在控件中设置方法为:

/// <summary>
/// 当选择模式为单选时,获取当前行的某一列的数据
/// </summary>
public string GetValue(string colName)
{
//***
}

则在网页上可以通过下面的方式调用:

<script type="text/javascript">
//获取页面参数
function getPara() {
alert("总页数:"+ document.getElementById("grid").GetValue("col1"));
}
</script>

 

接着,我们来看在Activex控件中如何调用JavaScript。


本人用的方法是,在控件中触发事件,在网页中接收事件。

首先定义事件接口:

public delegate void ControlEventHandler(string redirectUrl);

/// <summary>
/// 通过本接口向javascript暴露事件
/// </summary>
[Guid("9771B223-6188-4849-B292-C7D9D8173E49")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface ControlEvents
{
//Add a DispIdAttribute to any members in the source interface
//to specify the COM DispId.
[DispId(0x60020000)]
void OnClose(string redirectUrl);
}


接着在Activex控件中继承接口,同时增加属性ClassInterface(ClassInterfaceType.AutoDual):

[ClassInterface(ClassInterfaceType.AutoDual),
ComSourceInterfaces(typeof(ControlEvents))]


然后在控件内部定义事件:

public event ControlEventHandler OnClose;


最后在某个方法体内部触发事件:

private void listCustomer_DoubleClick(object sender, EventArgs e)
{
//****
OnDoubleClick(info.RowHandle);
}


控件部分的编码工作便结束了,剩下的就是在网页中调用:
调用方式也有两种
第一种调用方式:

<script type="text/javascript">
//捕获双击事件
function grid::OnDoubleClick(value){
alert(value);
}
</script>


注意此种方式要求Javascript代码出现在Object引用之后。

第二种方式:

<script type="text/javascript" language="JavaScript" for="grid" event="OnDoubleClick(value)">
alert(value);
</script>


参考文章:
红马天下Activex系列:
(1)http://www.cnblogs.com/homer/archive/2005/01/04/86473.html
(2)http://www.

    
[3]JavaScript用JQuery呼叫Server端方法
    来源:    发布时间: 2013-10-28

Insus.NET从2013年开始学习Javascript,此博文是第一次使用JQuery,从Javascript客户端用JQuery呼叫Server端的方法。首先看看此例的演示:

 

准备好Server端的方法:

[System.Web.Services.WebMethod]
public static string VeryUserName(string name)
{
string rtn = "恭喜,此帐号还没有注册,你可以使用。";

if (name == "")
rtn = "请填写一个注册帐号。";

if (name == "Insus.NET")
rtn = "此用户已经注册,请使用另外帐号。";

return rtn;
}


HTML代码:

Account:
<asp:TextBox ID="TextBoxAccount" runat="server"></asp:TextBox><br />
<input id="btnrReg" type="button" value="注册" onclick="VeryRegAccount()" />


Javascript脚本:

<script src="/blog_article/scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
function VeryRegAccount() {
$.ajax({
type: "POST",
url: "Default.aspx/VeryUserName",
data: '{name: "' + $("#<%= TextBoxAccount.ClientID%>")[0].value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
</script>

 
可参考下面语法:

 

 

本文链接


    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3