高手来帮忙看看

wylovemzc 2009-04-01 12:43:35
我在Page_Load中动态创建了一组单选控件也做了控件事件,控件绑订的值是从数据库中读出来绑订上去的,我在事件里要做一些选中值的判断,其中数据库中有个字段是控制读出来的数据是否随机排序读取,我设置AutoPostBack=true,我页面也用了ajax实现了无刷新,但是如果这些是随机排序读取值的时候,每次选中后要回调服务器,每次回调服务器后页面读取出来的值又重新排列了1次,我要如何实现,如果是随机排序的,我选中后回调服务器后页面不在执行1次啊
如果我加上if (!IsPostBack)的话,选中后,返回页面就什么都没有了
...全文
94 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wylovemzc 2009-04-01
  • 打赏
  • 举报
回复
能否给些指点,谢谢
大神来了丶 2009-04-01
  • 打赏
  • 举报
回复
homesos 2009-04-01
  • 打赏
  • 举报
回复
这个完全可以通过AJAX来完成
wylovemzc 2009-04-01
  • 打赏
  • 举报
回复
其实数据库内有个字段是判断答案是否要填写的,比如答案读出来是:北京,天津,上海,广州,广州后面跟了一个动态创建的文本框,我写单选按钮事件,主要是为了判断选中的值对应的数据字段是不是要填写的,如果是要填写的话,那么点按钮的时候页面就提示他填写内容
homesos 2009-04-01
  • 打赏
  • 举报
回复
看来必须得全部用AJAX来完成,POSTBACK的时候,前台数据丢失是必然的。
踏雪听雨 2009-04-01
  • 打赏
  • 举报
回复
AJAXY就不用autopostback了

dropdownlist onchange='ajax func'
wylovemzc 2009-04-01
  • 打赏
  • 举报
回复
if (type == "单选")
{
if (randoma == "True")
{
sql4 = "select top " + topn + " * from answer where QuestionID1=" + Label1.Text + " and ProjectID1='" + suryeysID + "' order By Inputable1 DESC,Rnd(" + (-1 * intRandomNumber) + "*id)";
}
else
{
sql4 = "select top " + topn + " * from answer where QuestionID1=" + Label1.Text + " and ProjectID1='" + suryeysID + "'";
}
comm = new OleDbCommand(sql4, conn);
OleDbDataReader read4 = comm.ExecuteReader();
while (read4.Read())
{
input = read4["Inputable1"].ToString();
i = i + 1;
RadioButton rd = new RadioButton();
rd.ID = "rd1" + i.ToString();
rd.GroupName = "rd1";
rd.Text = read4["Answer1"].ToString();
rd.CheckedChanged += new EventHandler(rd_CheckedChanged);
rd.AutoPostBack = true;
UpdatePanel1.ContentTemplateContainer.Controls.Add(rd);
if (input == "True")
{
Literal kg = new Literal();
kg.Text = " ";
Special.Enabled = false;
UpdatePanel1.ContentTemplateContainer.Controls.Add(kg);
UpdatePanel1.ContentTemplateContainer.Controls.Add(Special);
}
Literal br = new Literal();
br.Text = "<br/><br/>";
UpdatePanel1.ContentTemplateContainer.Controls.Add(br);
}
}
protected void rd_CheckedChanged(object sender, EventArgs e)
{
foreach (Control ctl in UpdatePanel1.ContentTemplateContainer.Controls)
{
if (ctl is RadioButton)
{
RadioButton rb = (RadioButton)ctl;
if (rb.Checked == true)
{
dx = rb.Text;
}
}
}
string sql = "select * from answer where Answer1='" + dx + "' and QuestionID1=" + Label1.Text + " and ProjectID1='" + suryeysID + "'";
conn = new OleDbConnection(strConnection);
conn.Open();
comm = new OleDbCommand(sql,conn);
OleDbDataReader read1 = comm.ExecuteReader();
if(read1.Read())
{
string tu = read1["Inputable1"].ToString();
if (tu == "True")
{
Special.Enabled = true;
}
else
{
Special.Enabled = false;
}
}
conn.Close();

这是一小部分代码,上面的部分是在page_load中的,下面的是单选控件事件中的代码
homesos 2009-04-01
  • 打赏
  • 举报
回复
AutoPostBack往返时,相当于重新刷新页面(不完全是),会丢失一些前台控件或是变量的数据,如果想要用自动回发,必须要保存这些值。

既然用了AJAX,实际上就没有必要再用AutoPostBack了。
zjybushiren88888 2009-04-01
  • 打赏
  • 举报
回复
友情帮顶
itcrazyman 2009-04-01
  • 打赏
  • 举报
回复
你不妨贴点代码上来
itcrazyman 2009-04-01
  • 打赏
  • 举报
回复
是不是AutoPostBack=true和ajax调用有冲突啊!
wylovemzc 2009-04-01
  • 打赏
  • 举报
回复
没人回答吗?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧