2010-11-26 2 views
0

Эран Betzalel написал небольшой класс расширения для DataGrid, все говорят, что это замечательно. Но я не могу понять, какой язык он использует и как заставить его работать в Silverlight C# .net 3.5.нечетный .net код нужен C# версия

Heres класс он написал 12 месяцев назад:

public final class DataGridEx extends DataGrid{ 
    public var maintainScrollAfterDataBind:Boolean = true; 

    public function DataGridEx() 
    { 
      super(); 
    }     

    override public function set dataProvider(value:Object):void { 
      var lastVerticalScrollPosition:int = this.verticalScrollPosition; 
      var lastHorizontalScrollPosition:int = this.horizontalScrollPosition; 

    super.dataProvider = value; 

    if(maintainScrollAfterDataBind) { 
      this.verticalScrollPosition = lastVerticalScrollPosition; 
      this.horizontalScrollPosition = lastHorizontalScrollPosition; 
    } 

}

Похоже мне, что он переопределен свойство, которое, как я вижу, это не возможно в .net.

Спасибо за все ваши замечания ниже. Я добавлю некоторые дополнительные подробности (очень жаль задержки в возвращении к этому, но я был в постели в течение 4 дней, галлюцинируя с лихорадкой!).

У меня есть Silverlight Datagrid, который привязан к вызову службы WCF, сетка имеет две кнопки на каждой строке сетки, одну для открытия станции, другую для закрытия станции, остальную часть данных в строке это информация пользователя.

Когда пользователь нажимает кнопку «Открыть» или «Закрыть» в определенной строке, я обновляю сводный раздел на странице вверху, а также обновляю данные в базе данных; сетка нуждается в обновлении в этот момент, если пользователь не потеряет фокус на том, на какой строке он нажал.

Проблема в том, что обновление приводит к тому, что первая строка поднимается до верхней части видимой области, я действительно надеюсь, что есть способ запомнить позицию строки и перемещать полосу прокрутки через код?

Существует возможность того, что я мог бы обновлять данные непосредственно в сетке, но это было сложно, потому что хотя его открытая/закрытая есть другая логика, которая делает это в 4-х правильном решении. Однако я мог бы переместить эту логику из службы в silverlight, если это мой единственный вариант, хотя он не является предпочтительным.

Действительно очень ценю вашу помощь по этому вопросу. Богатый.

+1

Какой язык является образцом кода, который предполагается использовать? Это, конечно, не C# или VB. –

+1

@Kirk Woll Для меня это выглядит как ActionScript. Я бы предположил, что «Eran Betzalel» расширил Flex DataGrid. Но о том, почему @rtenterprises хочет использовать этот код в C# /. NET, я неясен. – JeffryHouser

+0

-1 для запроса нестандартных вопросов о коде без предоставления ссылок на ссылки для получения дополнительной информации о том, где вы получили код, а также каких-либо сведений о вашем предполагаемом результате. – JeffryHouser

ответ

0

Используемый langauge Eran Betzalel составляет ActionScript. В этом случае Eran использует его для улучшения набора данных, предоставляемого Flex, SDK, используемого для создания богатых интернет-приложений на основе Adobe Flash.

В отличие от этого, Silverlight является основой Microsoft для создания интернет-приложений. Приложения Silverlight обычно пишутся на C# или VB.Net. К сожалению, кроме косметического сходства, существует связи между Flex datagrid и тем, что в Silverlight, поскольку они публикуются разными поставщиками.

Это означает, что реализации двух данных не будут иметь ничего общего. В результате код, который вы опубликовали , не имеет прямого эквивалента в Silverlight #.

С вашего вопроса неясно, чего вы пытаетесь достичь. Если вы объясните, что вы пытаетесь сделать, я уверен, что кто-то из участников Silverlight сможет вам помочь.

+0

Вы должны поместить это как Изменить в вопросе. Это не ответ :) – basarat

+0

@ Басарат Али Я не согласен. @ Kramii не является оригинальным плакатом вопроса; и я верю, что его ответ достаточно решает вопрос. – JeffryHouser

+0

Opps мой плохой. Сожалею. – basarat

0

Вы можете установить свойство scrollTo для браузера с помощью JavaScript, таким образом, он прокручивается назад в начало таблицы.

Редактировать:
Ой, нет, вам нужно найти способ Silverlight для этого. Не должно быть слишком тяжелым, просто перейдите к верхней части стола. Я не знаю о Silverlight, но в VB.NET есть событие (OnAfter) DataBind, которое вы могли бы использовать.

0

Код Эрана - это ActionScript (ECMAScript, например javascript), и расширяет объект в рамках фреймворка Adobe/api.

Код скомпилирован в SWF и в конечном итоге будет запущен в Adobe Flashplayer.

Silverlight - ответ Microsoft на Adobe Flash.

Итак, подведем итог, что вы опубликовали не «нечетный .net-код». Это не .net-код. OP от Eran даже не помечен как .net-код.

Чтобы «заставить работать» в Silverlight, вам, вероятно, придется написать компилятор для компиляции ActionScript & Flex API для C#/Silverlight.

Но это не ваш вопрос.

Что вы хотите сказать? Что именно вы пытаетесь достичь в Silverlight?

Смежные вопросы