Привет, у меня есть это ниже раскрывающихся списков.DropDownList выбранное значение
<asp:DropDownList ID="dllcust" CssClass="form-control chosen-select" runat="server" AutoPostBack="True" DataSourceID="Sqls_Cust" DataTextField="Cust_Name" DataValueField="Cust_ID" ></asp:DropDownList>
<asp:SqlDataSource ID="Sqls_Cust" runat="server" ConnectionString="<%$ ConnectionStrings:ConnString %>" SelectCommand="SELECT [Cust_ID], [Cust_Name] FROM [Customer]"></asp:SqlDataSource>
<asp:DropDownList ID="dllinvoivceid" CssClass="form-control chosen-select" runat="server" DataSourceID="Sqlds_Invoive" DataTextField="InvoiceID" DataValueField="InvoiceID">
</asp:DropDownList>
<asp:SqlDataSource ID="Sqlds_Invoive" runat="server" ConnectionString="<%$ ConnectionStrings:ConnString %>" SelectCommand="SELECT Invoice.InvoiceID FROM Invoice INNER JOIN Customer ON Invoice.Cust_ID = Customer.Cust_ID WHERE (Customer.Cust_ID = @Cust_ID)">
<SelectParameters>
<asp:ControlParameter ControlID="dllcust" Name="Cust_ID" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
Как вы можете видеть из кода dllinvoivceid
получить его значения на основе dllcust
значения, так что я могу получить счета для выбранного клиента.
Я вид сетки определяется следующим образом:
<asp:GridView ID="gridvoucher" OnRowCommand="gridvoucher_RowCommand" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered text-nowrap">
<Columns>
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<asp:LinkButton ID="LinkButton8" runat="server" CausesValidation="False" CommandName="EditVoucher" CssClass="btn btn-primary btn-xs" Text=""><i class="glyphicon glyphicon-pencil"></i></asp:LinkButton>
</ItemTemplate>
<ControlStyle CssClass="btn btn-primary" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:LinkButton ID="LinkButton9" runat="server" CausesValidation="False" CommandName="DeleteVoucher" CssClass="btn btn-primary btn-xs" OnClientClick="return confirm('Are you sure you want to delete this record ?');" Text="Delete"><i class="glyphicon glyphicon-trash"></i></asp:LinkButton>
</ItemTemplate>
<ControlStyle CssClass="btn btn-danger" />
</asp:TemplateField>
<asp:BoundField DataField="Voucher ID" HeaderText="Voucher #" SortExpression="Voucher ID" />
<asp:BoundField DataField="Invoice ID" HeaderText="Invoice ID" SortExpression="Invoice ID" />
<asp:BoundField DataField="Cust_ID" HeaderText="Cust_ID" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" SortExpression="Cust_ID" />
<asp:BoundField DataField="Customer" HeaderText="Customer Name" SortExpression="Customer Name" />
</Columns>
<EmptyDataTemplate>
"No records found"
</EmptyDataTemplate>
</asp:GridView>
В gridvoucher_RowCommand
У меня есть следующий код:
protected void gridvoucher_RowCommand(object sender, GridViewCommandEventArgs e)
{
string commandName = e.CommandName.ToString().Trim();
GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
string voucherID = row.Cells[2].Text;
string custid = row.Cells[4].Text;
string invoiceid = row.Cells[3].Text;
GridViewRow gvRow = (GridViewRow)((Control)e.CommandSource).NamingContainer;
Int32 rowind = gvRow.RowIndex;
switch (commandName)
{
case "EditVoucher":
txtvoucherid.Text=voucherID;
dllcust.SelectedValue = custid;
dllinvoivceid.SelectedValue = invoiceid;
MultiView1.ActiveViewIndex = 1;
break;
}
}
Вопрос заключается в выпадающий список с идентификатором dllinvoivceid
он не принимает выбранный value from grid-view
Требуется первая запись, полученная от команды выбора от Sqlds_Invoive
.
Вместо связывания клиента и счета падения вниз в разметке, сделайте это в коде, используя пример следующим образом: 'ddlCust.DataSource = sqDataSource1; ddlCust.DataBind() '. Кроме того, выполните эту привязку данных с кодовым кодом в событии Page_Load, если Page.IsPostBack == false. НЕ ИСПОЛЬЗУЙТЕ свойство DataSourceID, потому что это является причиной ваших проблем. – Sunil