2010-11-10 31 views
1

这是我的ajax寻呼机代码如下:现在我想确保当前页面的链接是不可点击的,CSS也应该反映。我的寻呼机正在跟踪当前页码,所以这不是问题。我担心的是,我应该如何让这个特定的链接不可点击,看起来不同(不写一大堆疯狂的if-else块)?mvc - ajax寻呼机 - 使当前页面无效链接

<%if(Model.num_pages > 1){ %> 
    <table> 
    <tr> 
    <td><%=Model.Total%></td> 
    <td><%=Ajax.ActionLink("1", 
       Model.originalAction, 
       Model.originalController, 
       new { Page = 1, totalNumber = Model.Total, comments = (object)null, divToUpdate = Model.divToUpdate, videoId = Model.carrierId }, 
         new AjaxOptions { UpdateTargetId = Model.divToUpdate, OnBegin = "commentBegin", OnComplete = "commentEnd" })%></td> 
    <%if (Model.num_pages > 3) 
     { %> 
     <td>   
    <%using (Ajax.BeginForm(
       Model.originalAction, 
       Model.originalController, 
       new {totalNumber = Model.Total, comments = (object)null, divToUpdate = Model.divToUpdate, videoId = Model.carrierId }, 
       new AjaxOptions { UpdateTargetId = Model.divToUpdate, OnBegin = "commentBegin", OnComplete = "commentEnd" })) 
     {%> 
    <%=Html.DropDownList("Page", Model.dropDown)%> 
    <input value = "jump" type = "submit" /> 
     <%} %> 
     </td> 
     <%} %> 
     <%else 
     { 
      for (int i = 2; i < Model.num_pages; i++) 
      {%> 
      <td> 
      <%=Ajax.ActionLink(i.ToString(), 
        Model.originalAction, 
        Model.originalController, 
         new { Page = i, totalNumber = Model.Total, comments = (object)null, divToUpdate = Model.divToUpdate, videoId = Model.carrierId}, 
          new AjaxOptions { UpdateTargetId = Model.divToUpdate, OnBegin = "commentBegin", OnComplete = "commentEnd" })%> 
      </td> 
     <% } 
     }%> 

    <td><%=Ajax.ActionLink(Model.num_pages.ToString(), 
        Model.originalAction, 
        Model.originalController, 
       new { Page = Model.num_pages, totalNumber = Model.Total, comments = (object)null, divToUpdate = Model.divToUpdate, videoId = Model.carrierId}, 
         new AjaxOptions { UpdateTargetId = Model.divToUpdate, OnBegin = "commentBegin", OnComplete = "commentEnd" })%></td> 
    </tr> 

    </table> 
    <%} %> 
+0

我不认为如果还有其他问题,坦率地说 – hunter 2010-11-10 19:26:28

+0

你认为我使用了太多的if-else?它不会只是一个更多,如果 - 其他......这将是其中的一小部分。如果你知道如何仅仅使用一个,那就让我知道。 – TPR 2010-11-10 21:33:27

回答

0

progtick - 我认为你最好为此创建一个htmlhelper。我在过去取得了巨大成功。基本上,它是一个内衬:

/* the 1st param is your target div 
    the 2nd parameter true/false merely indicates whether 
    the helper should run in querystring postback or ajax mode 
*/ 
<%=Html.Pagination("TargetDiv", true) %> 

,这里是它的外观(无保留道歉因此对于明显的影响!):

alt text

[更新]可以抢从这里开始的这个工作的例子:

http://www.gatehousemusic.com/downloads/MvcApplication2.1.zip

令M e知道你如何继续。

+1

是啊我不知道如何调整这个以适应我的Ajax.ActionLink方法,但让我们来看看.. – TPR 2010-11-10 23:18:57

+0

我要去掉我的ActionLink方法和你的传呼机,但我注意到了两件事你可能会知道处理:1)我不喜欢在URL 2中追加“#”)它不会降低当你禁用javascript – TPR 2010-11-11 21:57:32

+0

嗨progtick,我已经更新了我的示例。你可以使用'javascript:void(0);'代替#。新的例子有这个..只要有辱人格的javascript,它只是一个在页面加载时通过href链接运行每个函数的问题。我也是这样做的。看到新的样品! (基本上,缺省是在href上有正常的查询字符串参数,然后用javascript:void(0)在jquery中替换这些如果启用javascript)。请注意,该链接已更改为:http://www.gatehousemusic.com/downloads/MvcApplication2.1.zip – 2010-11-12 12:21:45