如何从下拉列表onchange事件访问gridview itemtemplate hiddenfield值?基本上,如果你看到下面我调用ConfirmStatus下拉列表值的变化,我需要传递隐藏字段的值给那个方法。
<asp:TemplateField Visible="true" HeaderText="Status" >
<ItemTemplate>
<asp:DropDownList ID="ddlTransactionList" Visible = "False" AutoPostBack="True" OnSelectedIndexChanged="ddlTransactionList_SelectedIndexChanged"
onchange=" if(ConfirmStatus(this)!=1){ return false;}"
runat="server"/>
<asp:Label runat="server" ID="lblStatus" Visible="True" Text='<%# ShowStatus( Container.DataItem ) %>' />
<input id="hiddenOriginalStatus" type="hidden" runat="server" />
</ItemTemplate>
</asp:TemplateField>
我宁愿从后面的代码触发onchange
,因为这是您分配和拥有所有值的地方。
protected void gridview1_DataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HiddenField hiddenOriginalStatus = (HiddenField)e.Row.FindControl("hiddenOriginalStatus");
(e.Row.FindControl("ddlTransactionList") as DropDownList).Attributes.Add("onchange", "ConfirmStatus('" + hiddenOriginalStatus.Value + "');");
}
}