2014-06-07 57 views
1

我有一個這樣的轉發器:__doPostBack不工作的代碼C#的.NET

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1"> 
<asp:Repeater ID="rptstudent" runat="server"> 
    <HeaderTemplate> 
     <table id="table1"> 
     <tr class="repeater_bg"> 
      <th width="40px">order</th> 
      <th width="300px">Name</th> 
      <th width="300px">Card</th> 
     </tr> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr class="repeater_item"> 
      <td align="center"> 
       <%# Container.ItemIndex + 1 %> 
      </td> 
      <td align="center"> 
       <asp:HiddenField ID="Id" Value='<%# Eval("IdStudent") %>' runat="server" /> 
       <%# Eval("Name") %> 
      </td> 
      <td align="center"> 
       <%# Eval("IdStudent") %> 
      </td> 
     </tr> 
    </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 
<asp:Label ID="lblPagination" CssClass="pagination" runat="server" Visible="false"></asp:Label> 
</telerik:RadAjaxPanel> 

視圖源代碼:

order  name           Card 
1   Alex (hidden field value is idstudent=1)  1 
2   Alex2 (hidden field value is idstudent=2) 2 
3   Alex3 (hidden field value is idstudent=3) 4 
4   Alex4 (hidden field value is idstudent=4) 3 
5   Alex5 (hidden field value is idstudent=5) 5 

          first page 1 2 3 4 last page 

和用於尋呼的標籤(使用後面的代碼結合值),所有的他們嵌套rad ajax面板。 現在,當我點擊鏈接進入到第2頁

<ul> 
<li><a href="javascript:__doPostBack('page0','0')">First Page</a></li> 
<li><a id="page1" href="javascript:__doPostBack('page1','1')">1</a></li> 
<li><a id="page2" href="javascript:__doPostBack('page2','2')">2</a></li> 
<li><a style="font-size:8pt;" href="javascript:__doPostBack('page2','2')">Last Page</a></li> 
</ul> 

是作品中,數據被傳輸到第2頁。但是當我看到頁面的源代碼時,中繼器中的隱藏字段不會重新載入數據。卡的名字是corect 查看源代碼:

order  name                Card 
6   Alex6 (hidden field value remains constant =1, must be 6)   6 
7   Alex7 (hidden field value remains constant =2, must be 7)   7 
8   Alex8 (hidden field value remains constant =3, must be 8)   8 
9   Alex8 (hidden field value remains constant =4, must be 9)   9 
10  Alex8 (hidden field value remains constant =5, must be 10)  10 
                 first page 1 2 3 4 last page 

代碼背後

if (!IsPostBack) 
{ 

} 
else 
{ 
// when you click a link, it's called event __dopostback 
    string postBackControlName = Request.Params.Get("__EVENTTARGET"); 
    string eventArgument = Request.Params.Get("__EVENTARGUMENT"); 
    if (postBackControlName == "page"+eventArgument) 
    { 
     LoadData(int.Parse(eventArgument)); 
    } 
} 

爲什麼發生這種情況,有沒有什麼辦法來解決這個問題。

感謝提前 Sory關於我的英語!

回答

0

請嘗試以下

if (!isPostBack) 
{ 
    //do something 
} 

else if (Request.Form["__EVENTTARGET"].ToLower().IndexOf("myevent") >= 0) 
{ 
    //call appropriate function. 
} 

檢查,如果你得到一個呼叫這樣

+0

感謝您的評論。它不工作,我可以打電話給第2頁,但隱藏的字段不會改變價值。我使用rad ajax面板嵌套所有這些 – user3716912

+0

然後在代碼背後嘗試這種方式liID.Attribute.Add(「onclick」,「__ doPosback(」+ page2.UniqueID +「)」) –

+0

非常感謝!對我來說是... – user3716912