Я просто работаю с базовыми данными, разработанными для веб-форм ASP.NET. У меня есть первая часть формы, но я не знаю, что делать дальше.Помощь мастера/детали, необходимая для новичков ASP.NET. (скриншот тоже)
Пожалуйста, смотрите этот скриншот того, что я создал до сих пор: http://www.twitpic.com/2gnmr
мне нужна помощь, зная, какой HTML элемент для использования в главном списке, и какие события/триггер на этом элементе, чтобы использовать, чтобы выстрелить последовательность «получить дочерние записи для этого выбранного элемента»?
Кроме того, является ли ListView даже правильным способом представления основного списка? В настоящее время я не пытаюсь предоставить какие-либо функции редактирования; Я доберусь до этого позже, я думаю.
Должен ли я использовать какой-то другой элемент управления данными ASP.NET, а не ручное кодирование списка, как я делаю?
Я не хочу видеть фактическую позицию ссылки «Выбрать» рядом с каждым именем клиента (что выглядит тупо). Я хочу, чтобы имя Клиента было ссылкой на клик.
Итак, вы можете увидеть в моем коде ниже, что у меня есть ListView, чтобы представить список CustomersWithOpenOrders. Но это всего лишь статический список, поэтому как сделать ярлык «Название компании» доступным для кликов, и что еще мне нужно, чтобы он смог вернуться к некоторому коду для получения дочерних записей. У меня уже есть метод кода для получения дочерних записей для переданного CustomerNumber в DataTable, и я думаю, что я знаю, как связать это с сеткой или списком для дочерних записей, но я не знаю, как передать CustomerNumber из главного ListView в метод из формы пользовательского интерфейса.
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<table cellpadding="2" border="0" ID="tbl1" runat="server">
<tr id="Tr1" runat="server" class="lvHeader">
<th id="Th1" runat="server">Customer</th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr id="Tr2" runat="server">
<td>
<asp:Label ID="label2" class="FirstLine" runat="server" Text='<%# Eval("company") %>' />
<br />
<div class="SecondLine">
<asp:Label ID="labelCustNo" runat="server" Text='<%# Eval("custno") %>'/>
<asp:Label runat="server" Text='Ph: '></asp:Label>
<asp:Label ID="label3" runat="server" Text='<% # Eval("phone") %>' />
</div>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
Ну, я доработал его до такой степени, что вы меняете dataItem.DataItem на тип клиента. Я не использую типизированные DataSets или объекты, а простой DataSet из вызова команды SQL. Итак, как я могу получить CustNo, если я установил его с помощью CommandArgument в LinkButton? – MattSlay
Просмотрите его в отладчике. Возможно, вам придется использовать его как DataRow или DataViewRow. – bendewey
Это значение null в отладчике. Я, наконец, просто использовал CommandArgument, равный CustId для каждого LinkButton, затем: string SelectedCustomerId = e.CommandArgument.ToString(); this.lvOpenOrders.DataSource = GetOpenOrdersByCustomer (SelectedCustomerId); this.lvOpenOrders.DataBind(); Обман? – MattSlay