Archive for category 软件开发技术

asp.net mvc dropdownlist联动代码实现

在开发Web项目过程中,经常需要使用dropdownlist联动,那么在asp.net mvc dropdownlist联动是如何实现的呢?下面我一步一步的介绍如何实现。

首先,在Controller类中实现两个方法,一个是页面刚加载时候的Index(),另一个是dropdownlist onchange()。实现代码如下:

public ActionResult Index(int? projectId, int? teamId)
{
//获取所有的项目ID
ViewData["projectinfos"] = new SelectList(db.FindAllProjectInfos(), "ProjectId", "ProjectName");
int _teamId = teamId ?? 0;
int _projectId = projectId ?? 0;
//通过项目ID获取班组ID
ViewData["teams"] = new SelectList(db.FindAllTeamsByProjectId(_projectId), "teamid", "teamname");
if (_teamId != 0)//不为0,表示要获取指定班组下的信息
{
var contracts = db.FindTeamContractInfosByForeignerId(_teamId);
return View(contracts);
}
else//为0,表示要获取所有班组下的信息
{
var contracts = db.FindTeamContractInfos();
return View(contracts);
}
}
///
/// 通过项目ID获取班组ID
///
public JsonResult GetTeamsByProjectId(int id)
{
var teams = db.FindAllTeamsByProjectId(id);
return Json(teams.ToList(), JsonRequestBehavior.AllowGet);
}

接下来,在View页面中加入两个dropdownlist和javascript脚本。实现代码如下:

       <div class="editor-label">
            所属项目名称
            <%: Html.DropDownList("projectId", ViewData["projectinfos"] as SelectList, "---全部项目---")%>
            所属班组名称
            <%: Html.DropDownList("teamId", ViewData["teams"] as SelectList, "---全部项目---")%>
            <input type="submit" value="查询" />
        </div>
<script type="text/javascript">// <![CDATA[
        $(document).ready(function () {
            $("#projectId").change(function () { GetTeams() });
        });

        function GetTeams() {
            $("#teamId").empty();
            var url = "/ContractInfo/GetTeamsByProjectId/" + $("#projectId").val() + "/";//规则是控制器/方法/参数
            alert(url);
            $.getJSON(url, function (data) {
                $.each(data, function (i, item) {
                    $("
<option></option>

")
                                        .val(item["TeamId"])
                                        .text(item["TeamName"])
                                        .appendTo($("#teamId"));
                });
            });
        }
// ]]></script>

最后就是运行一下看看效果。这里有几个点要注意:

  • 1、GetTeamsByProjectId(int id),参数一定要是id,不然调用不到的,要改的话到Global.asax文件中修改
  • 2、在Jquery中,.val(item["TeamId"]),这里的数据库字段是区分大小写的;
  • 3、、页面上别忘记引用jquery.js,如果再有问题就联系我或者在网上找找解决方法吧
  • 在乐pad上安装基于google map的应用问题解决

    本来我是写过一篇关于如果安装基于google map应用的文章的,见在Android系统上安装基于google map的应用出错

    但今天到手的乐pad竟然不让我把这个文件放到指定的目录,提示权限不够。我只能提权操作了,费了一个下午的时间。下面总结一下:

    先是安装“Root System Tool”,这里下载

    接着,有了Root权限后,修改/system/framework的权限,命令是:

    chmod 777 /system/framework
    chmod 777 /system/etc/permissions
    

    然后使用adb命令复制文件,命令是:

    adb -d push com.google.android.maps.jar /system/framework/com.google.android.maps.jar
    adb -d push com.google.android.maps.xml /system/etc/permissions/com.google.android.maps.xml
    

    现在可以安装您的基于google map的应用了,这样就不会提示错误了

    requires unavailable shared library com.google.android.maps; failing!
    

    最后,将文件夹的权限修改回来,卸载掉“Root System Tool”。权限改回来的命令是:

    chmod 755 /system/framework
    chmod 755 /system/etc/permissions
    

    在Android系统上安装基于google map的应用出错

    requires unavailable shared library com.google.android.maps; failing!
    

    把下面两个文件放在对应系统目录下:
    com.google.android.maps.jar ==> system/framework/
    com.google.android.maps.xml ==> system/etc/permissions/

    在c#中使用TransactionScope操作oracle数据库

    有需求要将几个操作oracle数据库的方法写到一个事务里面,用到了TransactionScope对象。但使用的时候不是很顺利,先是说不能嵌套事务,仔细检查原来的代码中,的确有事务,那个现在要把几个操作放到一个事务里面,只写删除了单个方法的事务。随之又报了另一个错误。

    using (TransactionScope scope = new TransactionScope())
    {
        do_ora1();
        do_ora2();
        do_ora3();
        scope.Complete();
    }
    
    [DllNotFoundException: 无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。]
       System.Data.OracleClient.OracleInternalConnection.Enlist(String userName, String password, String serverName, Transaction transaction, Boolean manualEnlistment) +157
       System.Data.OracleClient.OracleInternalConnection.Activate(Transaction transaction) +68
       System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) +33
       System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +1318
       System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +100
       System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +116
       System.Data.OracleClient.OracleConnection.Open() +40
    

    在网上查原因,各式各样的都有,我是这样的解决的:

    我的oracle版本是10.2,我下载了一个oramts10.dll文件,将这个文件重命名为oramts.dll后复制到oracle\product\10.2.0\db_1\BIN下。就OK了。有些人说下载msvcrtd.dll到system32下面,我试了是没有的。

    下载oramts10.dll

    金格控件加水印

    function WaterMark(WordObject){
      WordObject.Application.Selection.HeaderFooter.Shapes.AddTextEffect(0, "金格控件水印", "宋体", 1, false, false, 0, 0).Select();
      WordObject.Application.Selection.ShapeRange.TextEffect.NormalizedHeight = false;
      WordObject.Application.Selection.ShapeRange.Line.Visible = false;
      WordObject.Application.Selection.ShapeRange.Fill.Visible = true;
      WordObject.Application.Selection.ShapeRange.Fill.Solid();
      //填充色 为十进制颜色
      WordObject.Application.Selection.ShapeRange.Fill.ForeColor.RGB = 10444703;
      WordObject.Application.Selection.ShapeRange.Fill.Transparency = 0;
      //0表示水平 315倾斜45度
      WordObject.Application.Selection.ShapeRange.Rotation = 315;
      WordObject.Application.Selection.ShapeRange.LockAspectRatio = true;
      WordObject.Application.Selection.ShapeRange.Height= WordObject.Application.CentimetersToPoints(4.92);
      WordObject.Application.Selection.ShapeRange.Width= WordObject.Application.CentimetersToPoints(19.69);
      WordObject.Application.Selection.ShapeRange.WrapFormat.AllowOverlap = true;
      WordObject.Application.Selection.ShapeRange.WrapFormat.Side = 3;
      WordObject.Application.Selection.ShapeRange.WrapFormat.Type = 3;
      WordObject.Application.Selection.ShapeRange.RelativeHorizontalPosition = 0;
      WordObject.Application.Selection.ShapeRange.RelativeVerticalPosition = 0;
      WordObject.Application.Selection.ShapeRange.Left = -999995;
      WordObject.Application.Selection.ShapeRange.Top = -999995;
      WordObject.Application.ActiveWindow.ActivePane.View.SeekView = 0;
    }
    

    生成insert语句

    在网上能够搜索出的版本主要有两个:
    1. CSDN Sky_blue 所作: proc_insert (可 google)
    2. CSDN playyuer 所作: spGenInsertSQL (可 google)
    但这两个版本的程序都曾收录到:

    http://www.cnblogs.com/kasafuma/articles/109922.html

    但这两个版本程序都有局限性:
    如果字段太多或字段值的内容太多而无法生成完整正确的 insert into … 的 SQL!
    varchar 变量容量不够大!

    使用下面的工具可以轻松生成:自动生成Insert 语句的小工具

    Connection String:数据库连接
    SQL: 需要生成insert语句的查询语句,如:select * from aaa where id=11
    TableName:生成的insert into到的表名
    下载地址:点击我

    如果你不是程序员,你怎么雇佣程序员呢[转]

    如果你不是程序员,你怎么雇佣程序员呢

    刷新父页面,关闭窗口不提示的脚本

    try{opener.location.href=opener.location.href;}catch(e){};
    window.opener=null;window.open('','_self');window.close();
    

    ms sql server 2000 查询某个库的所有触发器名称

    select   *   from   sysobjects   where id in  (select   parent_obj   from   sysobjects where   xtype='TR' )
    

    ChangeConflictException: 找不到行或行已更改

    解决方法:
    就是在Linq to SQL Designer中,把一些字段的UpdateCheck属性设置为Never,这样,这些字段在更新的时候,就不会再出现在Where条件中了。其实比较推荐的做法,就是在表中设立主键,因为更新的时候,只要把主键作为Where条件,就可以单独的确立一行数据了。把除主键外的字段属性中UpdateCheck设置为Never即可。

    pagepeel by webpicasso.de