在page_load里面写上 protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
this.DriveTypeID = UtilTool.ToSafeInt32(Request.Params["ID"]);
this.BindDriveShow(1);
//this.BindDrive1Type();
//this.BindDrive2Type();
}
}
catch(Exception ex)
{
this.lblMessage.Text = ex.Message;
}
}这样试试
{
try
{
if (!IsPostBack)
{
this.DriveTypeID = UtilTool.ToSafeInt32(Request.Params["ID"]);
this.BindDriveShow(1);
//this.BindDrive1Type();
//this.BindDrive2Type();
}
}
catch(Exception ex)
{
this.lblMessage.Text = ex.Message;
}
}这样试试
例如: <asp:Image ID="Image1" runat="server" ImageUrl="http://www.google.com/images/google_sm.gif" />
<br />
<asp:Button ID="Button1" runat="server" Text="改变Visible属性" OnClick="Button1_Click" />
<br />
<asp:Button ID="Button2" runat="server" Text="改变display样式" OnClick="Button2_Click" /><br />
<asp:Button ID="Button3" runat="server" Text="什么也不做" />
protected void Button1_Click(object sender, EventArgs e)
{
this.Image1.Visible = !this.Image1.Visible;
}protected void Button2_Click(object sender, EventArgs e)
{
this.Image1.Style["display"] =
this.Image1.Style["display"] == "none" ? "inline" : "none";
}protected void Page_Load(object sender, EventArgs e)
{
this.SmartNavigation = true;
}执行之后可以看到,控件在被动刷新的时候,其display样式总是服务器端正确设置的。除非你有在问题中没有说过的操作需求,否则根本用不着为display保持刷新前的状态担心。
你的DriveTypeID 是什么?看不懂
"情色暴力漠视人命与戏说中国这样的大导演恶心)"
我的图标的动态加载的,每次刷新都加载一遍(放在repeater控件里),当然ID还是一样的.
——————————————————————————————————————————
动态加载是完全一样的。我把例子改了一下: <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<br />
<asp:Button ID="Button1" runat="server" Text="改变Visible属性" OnClick="Button1_Click" />
<br />
<asp:Button ID="Button2" runat="server" Text="改变display样式" OnClick="Button2_Click" />
<br />
<asp:Button ID="Button3" runat="server" Text="什么也不做" />
Image img;protected void Button1_Click(object sender, EventArgs e)
{
img.Visible = !img.Visible;
}protected void Button2_Click(object sender, EventArgs e)
{
img.Style["display"] = img.Style["display"] == "none" ? "inline" : "none";
}protected void Page_Load(object sender, EventArgs e)
{
this.SmartNavigation = true;
img = new Image();
img.ID = "myImg";
this.PlaceHolder1.Controls.Add(img);
img.ImageUrl = "http://www.google.com/images/google_sm.gif";
}与静态是一样的,只要img的UniqueID一样就没有问题。大概你的Repeater或者更高层的某个控件ID没有设置。你设置ID一样是不足够的,如果Repeater等的UniqueID不一样,那么图像的UniqueID也会不一样。
其实是这样的,把问题说白了就是,能不能记住前台控件的状态:
我的img不是runat=server的,有没有办法让它在刷新后还是原来的状态..
因为img是动态加载的,它的ID是:<img id=<%DataBinder.Eval(Container.DataItem,"")%>>
,这样vs2005的编译器不允许它是runat=server的,前面已经说了.在VS2005中,runat="server"控件的id只允许是简单的常量,这样当在上述的img标签里添加了runat="server"以后,连编译都通不过了
刚才公司开会了,实在没办法就用ajax提交,返回错误了,这样就不用担心保存原来控件的状态了..
但是这种方法老板肯定不会答应的
0.0..
看来我原来的要求是在页面上做不到的了..
揭帖!