我想在DropDownList的「eventnoteEditDrpDwnLst」的值設置爲在GridView中設置「可見= TRUE」到文本框「eventnoteAddTextBox」「自定義...」訪問內DropDownList.SelectedValue使用CommandArgument
<asp:GridView ID="grid" runat="server"
...
OnRowCommand="grid_RowCommand"
ShowFooter="True">
<columns>
...
<asp:TemplateField HeaderText="Event">
<ItemTemplate>
<asp:Label ID="eventnoteLbl" runat="server" Text='<%# Bind("eventnote") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="eventnoteEditDrpDwnLst" runat="server" DataTextField="eventnote" DataValueField="eventnote"></asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="eventnoteAddDrpDwnLst" runat="server" DataTextField="eventnote" DataValueField="eventnote" CommandName="AddCustomEventNote" CommandArgument="<%# ??? eventnoteAddDrpDwnLst.SelectedText ??? %>"></asp:DropDownList>
<asp:UpdatePanel ID="eventnoteAddUpdatePanel" runat="server" RenderMode="Block">
<ContentTemplate>
<asp:TextBox ID="eventnoteAddTextBox" runat="server" DataTextField="eventnote" DataValueField="eventnote" Visible="False"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</FooterTemplate>
</asp:TemplateField>
...
</columns>
</asp:GridView>
代碼隱藏
protected void grid_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("AddCustomEventNote"))
{
DropDownList eventnoteAddDrpDwnLst = (DropDownList)e.CommandSource;
if (eventnoteAddDrpDwnLst.SelectedValue == "Custom...")
Response.Write("<script>alert('It works!');</script>");
//grid.FooterRow.FindControl("eventnoteAddTextBox").Visible = true;
}
}
這是行不通的。
我不知道該如何將「CommandArgument」放在中。它應該是空的嗎?! –
84RR1573R
它應該是空的,因爲你不想要一個靜態值,你想要在下拉列表中選擇的值。如果CommandArgument是一個按鈕或某個靜態值是發送者,但不帶下拉列表(除非您需要一些額外的值,除了所選項目中的值),那麼'CommandArgument'纔有意義。 –
似乎它根本不起作用。看,我編輯了一下,以便更清楚。 – 84RR1573R