2010-11-10 55 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