Как я могу создать собственный элемент управления веб-сервера для gridview в asp.net - PullRequest
1 голос
/ 05 августа 2010
Visual Studio 2008 
.Net 3.5 
C#

У меня есть веб-сайт, на котором много страниц с сеткой.Я хочу иметь возможность добавить кнопку «Экспорт в Excel» в некоторых видах сетки, поэтому я начал искать и нашел пользовательские элементы управления веб-сервера - см. эту страницу , например.

Этот пример пользовательской метки позволяет передавать строковые параметры в качестве входных данных для пользовательского элемента управления:

<aspSample:WelcomeLabel ID="WelcomeLabel1" 
   runat="server" Text="Welcome" DefaultUserName="Guest">
</aspSample:WelcomeLabel>

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

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

Обратите внимание: У меня есть код, написанный для возможности экспорта вида сетки в файл Excel, и он работает нормально.Мне нужна помощь в том, как сделать этот код более универсальным, чтобы я мог перетащить его в мой ASP с помощью вида сетки и позволить представлению сетки быть «экспортируемым».!

1 Ответ

1 голос
/ 05 августа 2010

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

Пример:

Допустим, мы называем все наши кнопки как-то так, чтобы мы могли извлечь их родительский вид сетки

<asp:LinkButton ID="PeopleGridView_exportbutton" runat="server" onclick="excel_click" />
<asp:LinkButton ID="ShipmentsGridView_exportbutton" runat="server" onclick="excel_click" />
<asp:LinkButton ID="ProductsGridView_exportbutton" runat="server" onclick="excel_click" />

Теперь мы сделаем этот метод:

protected void uxPrenatalSubmit_Click(object sender, EventArgs e){
  string callerControlID = ((Control)sender).ID;
  string gridveiwID = callerControlID.Replace("_exportbutton", "");
  GridView gv = (GridView) findControl(gridveiwID);
  myCustomExcelCreatorMethod(gv.DataSource); //your method thingie here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...