Директива местоположения Nginx, кажется, не работает. Я пропускаю что-то?

Вам необходимо установить атрибут OnItemDataBound="myFunction"

И затем в своем коде выполните следующее

void myFunction(object sender, RepeaterItemEventArgs e)
{
   Label lblA = (Label)e.Item.FindControl("lblA");
}

Кстати, вы можете использовать этот точно такой же подход для вложенных повторителей. IE:

<asp:Repeater ID="outerRepeater" runat="server" OnItemDataBound="outerFunction">
<ItemTemplate>
   <asp:Repeater ID="innerRepeater" runat="server" OnItemDataBound="innerFunction">
   <ItemTemplate><asp:Label ID="myLabel" runat="server" /></ItemTemplate>
   </asp:Repeater>
</ItemTemplate>
</asp:Repeater>

А потом в вашем коде:

void outerFunction(object sender, RepeaterItemEventArgs e)
{
   Repeater innerRepeater = (Repeater)e.Item.FindControl("innerRepeater");
   innerRepeater.DataSource = ... // Some data source
   innerRepeater.DataBind();
}
void innerFunction(object sender, RepeaterItemEventArgs e)
{
   Label myLabel = (Label)e.Item.FindControl("myLabel");
}

Слишком часто я вижу людей, которые вручную привязывают элементы на внутреннем ретрансляторе, и они не понимают, насколько они трудны. делать вещи для себя.

37
задан ErJab 18 June 2009 в 06:32
поделиться

2 ответа

Проблема здесь в том, что берется только "лучшее" расположение директива, в следующем порядке:

location =  <path>  (longest match wins)
location ^~ <path>  (longest match wins)
location ~  <path>  (first defined match wins)
location    <path>  (longest match wins)

Используя этот набор правил, ваша директива / phpmyadmin location заменяется регулярным выражением " .php $ " location директива, поэтому первое полностью игнорируется. Кроме того, ваша директива php fastcgi жестко привязана к вашему каталогу / home / me / dev , что означает, что phpMyAdmin полностью недоступен. Вы можете использовать перезапись, чтобы получить правильный корень для ваших скриптов phpMyAdmin:

location ~ \.php$ {
    set $php_root /home/me/dev;
    if ($request_uri ~* /phpmyadmin) {
        set $php_root /var/www/nginx-default/phpMyAdmin;
    }

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}
80
ответ дан 27 November 2019 в 04:23
поделиться

Может быть, он ищет index.html? Попробуйте перейти на

location /phpmyadmin {
    root   /var/www/nginx-default/phpMyAdmin;
    index index.php;
}

и добавить раздел ниже, чтобы избежать проблем, связанных с делом

location /phpMyAdmin {
   rewrite ^/* /phpmyadmin last;
}
0
ответ дан 27 November 2019 в 04:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: