проблемы с реализацией интерфейса - PullRequest
0 голосов
/ 11 мая 2018

Я хочу выполнить метод ShowControls() в классах Class2 (и других) с помощью интерфейса.Метод Show Controls () содержит параметр переключателя, который определяет отображение или скрытие различных элементов управления (многие из которых являются пользовательскими элементами управления) в шаблоне элемента GridView на основе его индекса строки во время привязки данных GridView.Когда я вызываю метод из Class2, я получаю это сообщение об ошибке: CS1503 Аргумент 1: невозможно преобразовать из «System.EventArgs» в «System.Web.UI.WebControls.GridViewRowEventArgs» .Это сбивает меня с толку, так как я четко указал параметр GridViewRowEventArgs в методе.

Может кто-нибудь помочь мне настроить это правильно?Может быть, я не могу ссылаться на веб-элементы управления в интерфейсе?Я ссылался конкретно на следующие операторы использования в I_BuildGridView и BuildControl:

using System.Web; 
using System.Web.UI;
using System.Web.UI.WebControls;

Вот как у меня настроен интерфейс:

public interface I_BuildGridView
    {
        void ShowControls(GridViewRowEventArgs e);

    }

public class BuildControls: I_BuildGridView 
    {
      public void ShowControls(GridViewRowEventArgs e)
      {//switch statement here -it's very long so left out here…}
    }  

public partial class Class2 : System.Web.UI.Page
    {     
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            { 
                 //Call interface here
                 I_BuildGridView oShow = new BuildControls();
                oShow.ShowControls(e);//<--error here CS1503 red sqiggly under the e
            }

К вашему сведению: я использовал это ссылка для построения интерфейса

1 Ответ

0 голосов
/ 11 мая 2018

Я думал об удалении этого вопроса, но оставлю это на усмотрение модератора.Подумав об этом, я понял, что событие Page_Load () - это не место для вызова метода ShowControls (), а событие RowDataBound GridViews - потому что ссылка на параметр будет доступна оттуда и еще не известна в Page_Load() событие.По крайней мере, это мои рассуждения.Дайте мне знать, если я ошибаюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...