Функция Codebehind не вызывается со страницы aspx - PullRequest
0 голосов
/ 09 марта 2012

Вероятно, это момент "дох", но не может заставить эту функцию codebehind срабатывать. На самом деле отладка показывает, что он даже не вызывается, что может показательно, когда в конечном итоге отображается на веб-странице, можно увидеть только:

<table id="dnn_ctr422_ViewPloads_PagerTable">.... 

Обратите внимание на отсутствующий «стиль». Любая помощь будет принята с благодарностью.

//aspx code
<table id="PagerTable" style="<%# GetPagerStyle() %>" runat="server">
   <tr>
   <td> 
      <asp:DataPager ID="PloadPager" runat="server" PagedControlID="PloadListView" OnPreRender ="PloadPager_PreRender" PageSize="20" >

//code behind      
protected String GetPagerStyle( )
    {
        return "background-color:" + (String)Settings["TableBackgroundColor"];
    }

Ответы [ 4 ]

1 голос
/ 09 марта 2012

Вы звонили Page.DataBind, так как <%#... является обязательным выражением?

встроенные теги asp.net ... сортировка их всех

Кроме того, вы всегда можете установить этот код из codebehind:

protected void Page_Load(object sender, EventArgs e)
{
    PagerTable.Style.Add("background-color", (String)Settings["TableBackgroundColor"]);
}
1 голос
/ 09 марта 2012

Просто замените # на = в вашем коде,

style="<%=GetPagerStyle()%>" должно работать нормально.

1 голос
/ 09 марта 2012

Из того, что вы показываете, непонятно, почему он не запускается.Возможно, вы работаете с версией, которая не совпадает с вашей исходной версией, но я предполагаю, что вы уже пробовали полную перестройку.

Знайте, что вы также можете установить точки останова на странице ASPX.Но я догадываюсь, что если это не называется, больше не называется.Вы пытались взломать Page_Load или Page_PreRender?

Другая возможность состоит в том, что ваш объект PagerTable изменяется другим кодом до вызова GetPagerStyle.В этом случае, если атрибут style изменен до его запуска, это может привести к этой проблеме.Чтобы обойти и выяснить, действительно ли вы можете установить стиль, выполните следующие действия в Page_Load:

// correction courtesy of Tim Schmelter ;)
PagerTable.Style.Add(HtmlTextWriterStyle.BackgroundColor, 
    (String)Settings["TableBackgroundColor"]);

РЕДАКТИРОВАТЬ: Обратите внимание, как уже отмечали другие, следующее также должноработа (пробовал, так как возникли некоторые противоречия, см. другие ответы):

<table id="PagerTable" style="<%= GetPagerStyle() %>">

Однако обратите внимание, что я удалил runat="server".Это означает, что вы больше не можете использовать его из кода.Я просто предполагаю, что вы ничего не делаете с этим элементом управления в коде, поэтому не знаю, работает ли это в вашей ситуации.

0 голосов
/ 09 марта 2012

Вы пробовали

<%= GetPagerStyle() %>
...