datagrid中绑定了一组dropdownlist。
<asp:datagrid id="dgrdList" AutoGenerateColumns="False" BorderStyle="Outset" CellPadding="1" CellSpacing="2" runat="server">
<ItemStyle Wrap="False" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" Wrap="False" BorderColor="#ffffff" BackColor="#8080FF"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="">
<HeaderStyle Wrap="False" HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Left"></ItemStyle>
<ItemTemplate>
<asp:DropDownList id="dropAddressList" Runat="server" Font-Size="12" DataSource="<%# Container.DataItem.AddressListC%>">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
本来,在<asp:DropDownList id="dropAddressList"></asp:DropDownList>加上AutoPostBack=true,就可以实现每一次SelectChange带来的画面提交。但是现在我只需要对一组dropdownlist中某一个进行提交,其他的不需要。
<asp:datagrid id="dgrdList" AutoGenerateColumns="False" BorderStyle="Outset" CellPadding="1" CellSpacing="2" runat="server">
<ItemStyle Wrap="False" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" Wrap="False" BorderColor="#ffffff" BackColor="#8080FF"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="">
<HeaderStyle Wrap="False" HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Left"></ItemStyle>
<ItemTemplate>
<asp:DropDownList id="dropAddressList" Runat="server" Font-Size="12" DataSource="<%# Container.DataItem.AddressListC%>">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
本来,在<asp:DropDownList id="dropAddressList"></asp:DropDownList>加上AutoPostBack=true,就可以实现每一次SelectChange带来的画面提交。但是现在我只需要对一组dropdownlist中某一个进行提交,其他的不需要。
<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
} theform.__EVENTTARGET.value = eventTarget.split("&").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
结果发现,我只要把
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
加到.aspx里面,执行的时候就会发生编译错误。而不加的话,又提示找不到__EVENTTARGET这个对象。到底是怎么回事情呢???
所以不能够用__dopostback('','')
Page.RegisterStartupScript("postback", "<SCRIPT language='javascript'>__doPostBack('你要提交的dropdownlist','');</SCRIPT>")
Implements IPostBackEventHandler不过你试试吧
Protected Overloads Overrides Sub RaisePostBackEvent(ByVal sourceControl As System.Web.UI.IPostBackEventHandler, ByVal eventArgument As String) End Sub
到后台了不就是已经提交了吗
POST之后可以在SELECT事件里写呀